Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop -> Main 머지 #96

Merged
merged 82 commits into from
Sep 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
c9e039a
feat: 공지사항 생성, 공지사항 읽기 기능 추가 (#1)
skfotakf Jul 25, 2023
f849a63
chore: .idea 디렉토리 삭제
leeeryboy Jul 26, 2023
54ef587
chore: PR 템플릿 생성 (#2)
leeeryboy Jul 23, 2023
3a92906
feat: 로컬 db용 docker-compose 파일 추가 및 application.yaml 수정 (#4)
leeeryboy Jul 26, 2023
c2f7ef8
feat: 공지사항 수정, 삭제, 태그 기능 추가 (#3)
skfotakf Jul 28, 2023
227a385
feat: 구성원(교수) 생성 및 조회 API 구현 (#8)
leeeryboy Jul 31, 2023
92a8e8b
Docs: Swagger 추가 (#7)
huGgW Jul 31, 2023
00566f2
feat: 페이지네이션+검색 기능 추가 (#5)
skfotakf Aug 1, 2023
38de652
CICD: 배포 자동화 (#6)
huGgW Aug 1, 2023
1a75adf
feat: 구성원(교수) 수정 및 삭제 API (#9)
leeeryboy Aug 5, 2023
42249ba
feat: 구성원(행정직원) CRUD API (#10)
leeeryboy Aug 5, 2023
41bb4fd
feat: news 패키지 추가, 디벨롭 및 프론트에 맞게 엔티티 변경 (#12)
skfotakf Aug 8, 2023
3bbccb9
Merge branch 'main' into develop
leeeryboy Aug 8, 2023
7e3ea8e
fix: main에서 develop으로 pr (#16)
skfotakf Aug 9, 2023
6c5afe2
feat: seminar 패키지 추가 (#17)
skfotakf Aug 11, 2023
a550011
hotfix: 불필요한 dto 삭제 (#20)
skfotakf Aug 11, 2023
e2b3dec
fix: 이미지 uri 필드 추가 및 프론트 요구사항 반영 (#21)
leeeryboy Aug 14, 2023
0813562
feat: introduction 패키지, undergraduate 패키지 추가 (#22)
skfotakf Aug 15, 2023
cffac41
feat: admissions, research 패키지 추가 (#23)
skfotakf Aug 15, 2023
21b7dd7
Merge branch 'main' into develop
leeeryboy Aug 16, 2023
d2c341c
feat: oidc 로그인 (#27)
leeeryboy Aug 22, 2023
e05b5ad
feat: cors 설정 (#30)
leeeryboy Aug 22, 2023
bf61a06
Merge branch 'main' into develop
leeeryboy Aug 22, 2023
28fa788
fix: cors 추가 설정 (#32)
leeeryboy Aug 22, 2023
3e0f8e7
fix: CORS (#34)
leeeryboy Aug 23, 2023
3fae6a4
Merge branch 'main' into develop
leeeryboy Aug 23, 2023
a86542c
fix: about, academics, admissions 패키지 수정 (#25)
skfotakf Aug 24, 2023
cc256bf
feat: 일반 예약 및 정기 예약 API (#28)
leeeryboy Aug 24, 2023
13161c9
feat: 예약 조회 API (#39)
leeeryboy Aug 28, 2023
191f6f6
feat: about, member, news, seminar 메인 이미지 업로드 추가 (#38)
skfotakf Aug 29, 2023
455ded8
CICD: Change deploy port to 8080 (#40)
huGgW Aug 29, 2023
f8862c8
Merge branch 'main' into develop
huGgW Aug 29, 2023
f629d47
[Merge] (#41) (#42)
leeeryboy Aug 29, 2023
7b78310
feat: 장학제도 GET API 및 장학제도 페이지 응답 수정 (#44)
leeeryboy Aug 30, 2023
233a8e6
feat: custom metadata 설정 + 리다이렉트 엔드포인트 변경 (#45)
leeeryboy Aug 30, 2023
b86741f
feat: attachments 패키지 추가, news와 seminar request에 attachments 추가 (#43)
skfotakf Aug 30, 2023
fb5193f
feat: Top Conference List GET API (#47)
leeeryboy Aug 30, 2023
d479520
feat: 파일 서빙, 다운로드, 삭제 API (#48)
leeeryboy Aug 31, 2023
3b5d67a
feat: 공지사항 글쓴이 추가 (#49)
leeeryboy Aug 31, 2023
b8fca73
CI/CD: Https 적용 및 백엔드, 데이터베이스, 프록시 서버 배포 분리 (#50)
huGgW Aug 31, 2023
8b38588
fix: 프론트랑 협의하여 내용 변경 + news, seminar에 image, attachments update 추가 (#51)
skfotakf Sep 1, 2023
3565704
fix: research 패키지 프론트에 맞춰 협의 (#52)
skfotakf Sep 2, 2023
79ca736
[Refactor] 로그인, file uri 배포 환경에 맞게 수정 (#53)
huGgW Sep 2, 2023
46cee1c
fix: https 적용 관련 로그인 수정 (#56)
leeeryboy Sep 2, 2023
6d8a2fc
fix: notice 패키지 프론트에 맞게 협의 (#54)
skfotakf Sep 2, 2023
068a38b
feat: 신임교수초빙 (#59)
leeeryboy Sep 2, 2023
d546a9f
feat: 행정실 권한 체크 API (#60)
leeeryboy Sep 2, 2023
6f23b0e
[CICD] mainImage, attachment 경로 mount 설정 (#55)
huGgW Sep 3, 2023
d806f6c
[Feat] 예전 url과 비슷하게 이전 파일(사진)들 접근할 수 있도록 controller 생성 (#58)
huGgW Sep 3, 2023
c0d71c0
Merge branch 'main' into develop
huGgW Sep 3, 2023
d99ac71
Merge branch 'main' into develop
huGgW Sep 3, 2023
433a2bf
fix: 예약 dto에 지도교수, 반복 횟수 추가 (#61)
leeeryboy Sep 3, 2023
878b4f4
fix: 로그아웃 엔드포인트 변경 (#64)
leeeryboy Sep 3, 2023
f79edc9
[Fix] Notice, News Description TEXT type으로 변환 (#65)
huGgW Sep 4, 2023
f47b845
fix: newsSearchResponse, seminarSearchResponse 수정 (#66)
skfotakf Sep 4, 2023
0c83efb
fix: 파일 업로드 경로 통일 (#68)
leeeryboy Sep 4, 2023
b1985bb
fix: 갯수만 fetch하도록 최적화 (#70)
leeeryboy Sep 5, 2023
46320ff
Fix: Change type of additionalNote column on SeminarEntity to "TEXT" …
huGgW Sep 5, 2023
a3e803f
fix: academics 패키지 프론트에 맞춰 협의, admin 패키지 추가 (#69)
skfotakf Sep 5, 2023
a3514fb
Refactor: HTML로부터 텍스트 추출 함수 Utils로 이동 (#73)
huGgW Sep 6, 2023
9f406af
Feat: Add plain text description for notice (#74)
huGgW Sep 7, 2023
0ce4199
fix: admissions 패키지 프론트에 맞게 협의 (#76)
skfotakf Sep 8, 2023
6876bd6
fix: 이전 글 다음 글만 fetch 하도록 쿼리 최적화 (#75)
leeeryboy Sep 8, 2023
b56ff8a
CI/CD: Test 설정 (#77)
huGgW Sep 8, 2023
b882c3a
[Test] Notice create, update 시 plainTextDescription 동작 테스트 (#78)
huGgW Sep 8, 2023
8d5627c
[Feat] Seminar plain text field 추가 (#79)
huGgW Sep 8, 2023
d2c0366
Feat: News plain text field 추가 (#80)
huGgW Sep 8, 2023
a409fa8
Feat: 구성원 검색 위한 table 추가. (#81)
huGgW Sep 8, 2023
b60f716
fix: 새소식 세미나 쿼리 수정 (#82)
leeeryboy Sep 9, 2023
6f72689
fix: main 프론트에 맞게 협의, notice 태그 enum 추가 (#83)
skfotakf Sep 10, 2023
cb9e3a1
fix: isPublic -> isPrivate으로 정리 (#86)
skfotakf Sep 11, 2023
cfc872e
Merge branch 'main' into develop
leeeryboy Sep 11, 2023
471b128
feat: 로컬 로그인 테스트용 엔드포인트로 임시 변경 (#87)
leeeryboy Sep 11, 2023
c06e73b
Feat: 구성원 검색 API 추가 (#85)
huGgW Sep 11, 2023
ea640a4
Merge branch 'main' into develop
skfotakf Sep 11, 2023
cba2428
fix: 세미나 시간 타입 변경 (#91)
leeeryboy Sep 11, 2023
0a57a08
fix: 태그 항목 수정 (#92)
leeeryboy Sep 11, 2023
e37b804
fix: news tag 추가 (#90)
skfotakf Sep 11, 2023
aba7c1c
Merge branch 'main' into develop
huGgW Sep 11, 2023
944250b
feat: 졸업생 창업 진로, 졸업생 진로 response 추가 (#94)
skfotakf Sep 11, 2023
a5b69d4
fix: conference 주소 추가 (#95)
skfotakf Sep 11, 2023
149f76d
Merge branch 'main' into develop
skfotakf Sep 11, 2023
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,6 +1,8 @@
package com.wafflestudio.csereal.core.about.api

import com.wafflestudio.csereal.core.about.dto.AboutDto
import com.wafflestudio.csereal.core.about.dto.CompanyDto
import com.wafflestudio.csereal.core.about.dto.FutureCareersPage
import com.wafflestudio.csereal.core.about.service.AboutService
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
Expand Down Expand Up @@ -50,5 +52,9 @@ class AboutController(
fun readAllDirections() : ResponseEntity<List<AboutDto>> {
return ResponseEntity.ok(aboutService.readAllDirections())
}
@GetMapping("/future-careers")
fun readFutureCareers(): ResponseEntity<FutureCareersPage> {
return ResponseEntity.ok(aboutService.readFutureCareers())
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.wafflestudio.csereal.core.about.database

import com.wafflestudio.csereal.common.config.BaseTimeEntity
import jakarta.persistence.Entity

@Entity(name = "company")
class CompanyEntity(
var name: String,
var url: String,
var year: Int,
) : BaseTimeEntity() {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.wafflestudio.csereal.core.about.database

import org.springframework.data.jpa.repository.JpaRepository

interface CompanyRepository: JpaRepository<CompanyEntity, Long> {
fun findAllByOrderByYearDesc(): List<CompanyEntity>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.wafflestudio.csereal.core.about.database

import com.wafflestudio.csereal.common.config.BaseTimeEntity
import jakarta.persistence.Entity
import jakarta.persistence.EnumType
import jakarta.persistence.Enumerated

@Entity(name = "stat")
class StatEntity(
var year: Int,

@Enumerated(EnumType.STRING)
var degree: Degree,
var name: String,
var count: Int,
): BaseTimeEntity() {
}

enum class Degree {
BACHELOR, MASTER, DOCTOR
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.wafflestudio.csereal.core.about.database

import org.springframework.data.jpa.repository.JpaRepository

interface StatRepository: JpaRepository<StatEntity, Long> {
fun findAllByYearAndDegree(year: Int, degree: Degree): List<StatEntity>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.wafflestudio.csereal.core.about.dto

data class CompanyDto(
val name: String,
val url: String,
val year: Int,
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.wafflestudio.csereal.core.about.dto

data class CompanyNameAndCountDto(
val id: Long,
val name: String,
val count: Int
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.wafflestudio.csereal.core.about.dto

data class FutureCareersPage(
val description: String,
val stat: List<StatDto>,
val companies: List<CompanyDto>
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.wafflestudio.csereal.core.about.dto

data class StatDto(
val year: Int,
val bachelor: List<CompanyNameAndCountDto>,
val master: List<CompanyNameAndCountDto>,
val doctor: List<CompanyNameAndCountDto>
) {
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package com.wafflestudio.csereal.core.about.service

import com.wafflestudio.csereal.common.CserealException
import com.wafflestudio.csereal.core.about.database.AboutEntity
import com.wafflestudio.csereal.core.about.database.AboutPostType
import com.wafflestudio.csereal.core.about.database.AboutRepository
import com.wafflestudio.csereal.core.about.database.LocationEntity
import com.wafflestudio.csereal.core.about.dto.AboutDto
import com.wafflestudio.csereal.core.about.database.*
import com.wafflestudio.csereal.core.about.dto.*
import com.wafflestudio.csereal.core.resource.attachment.service.AttachmentService
import com.wafflestudio.csereal.core.resource.mainImage.service.MainImageService
import org.springframework.stereotype.Service
Expand All @@ -18,11 +15,15 @@ interface AboutService {
fun readAllClubs() : List<AboutDto>
fun readAllFacilities() : List<AboutDto>
fun readAllDirections(): List<AboutDto>
fun readFutureCareers(): FutureCareersPage

}

@Service
class AboutServiceImpl(
private val aboutRepository: AboutRepository,
private val companyRepository: CompanyRepository,
private val statRepository: StatRepository,
private val mainImageService: MainImageService,
private val attachmentService: AttachmentService,
) : AboutService {
Expand Down Expand Up @@ -96,6 +97,61 @@ class AboutServiceImpl(
return directions
}

@Transactional
override fun readFutureCareers(): FutureCareersPage {
val description = "컴퓨터공학을 전공함으로써 벤처기업을 창업할 수 있을 뿐 " +
"아니라 시스템엔지니어, 보안전문가, 소프트웨어개발자, 데이터베이스관리자 등 " +
"많은 IT 전문 분야로의 진출이 가능하다. 또한 컴퓨터공학은 바이오, 전자전기, " +
"로봇, 기계, 의료 등 이공계 영역뿐만 아니라 정치, 경제, 사회, 문화의 다양한 분야와 " +
"결합되어 미래 지식정보사회에 대한 새로운 가능성을 제시하고 있고 새로운 학문적 과제가 " +
"지속적으로 생산되기 때문에 많은 전문연구인력이 필요하다.\n" +
"\n" +
"서울대학교 컴퓨터공학부의 경우 학부 졸업생 절반 이상이 대학원에 진학하고 있다. " +
"대학원에 진학하면 여러 전공분야 중 하나를 선택하여 보다 깊이 있는 지식의 습득과 연구과정을 거치게 되며 " +
"그 이후로는 국내외 관련 산업계, 학계에 주로 진출하고 있고, 새로운 아이디어로 벤처기업을 창업하기도 한다."

val statList = mutableListOf<StatDto>()
for(i: Int in 2021 downTo 2011) {
val bachelor = statRepository.findAllByYearAndDegree(i, Degree.BACHELOR).map {
CompanyNameAndCountDto(
id = it.id,
name = it.name,
count = it.count
)
}
val master = statRepository.findAllByYearAndDegree(i, Degree.MASTER).map {
CompanyNameAndCountDto(
id = it.id,
name = it.name,
count = it.count,
)
}
val doctor = statRepository.findAllByYearAndDegree(i, Degree.DOCTOR).map {
CompanyNameAndCountDto(
id = it.id,
name = it.name,
count = it.count,
)
}
statList.add(
StatDto(
year = i,
bachelor = bachelor,
master = master,
doctor = doctor,
)
)
}
val companyList = companyRepository.findAllByOrderByYearDesc().map {
CompanyDto(
name = it.name,
url = it.url,
year = it.year
)
}
return FutureCareersPage(description, statList, companyList)
}

private fun makeStringToEnum(postType: String) : AboutPostType {
try {
val upperPostType = postType.replace("-","_").uppercase()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RequestMapping("/conference")
@RequestMapping("/api/v1/conference")
@RestController
class ConferenceController(
private val conferenceService: ConferenceService
Expand Down