Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4604c3b
dd
gkdl Nov 23, 2024
f702da3
Merge branch 'main' of https://github.com/gkdl/be-onboarding-project
gkdl Nov 23, 2024
8ac408a
Delete src/main/java/org/onboarding/prj directory
gkdl Nov 23, 2024
5106516
rr
gkdl Nov 23, 2024
1413e26
Merge branch 'main' of https://github.com/gkdl/be-onboarding-project
gkdl Nov 23, 2024
4d0f688
Delete .idea directory
gkdl Nov 23, 2024
e25a0de
ddd
gkdl Nov 23, 2024
357a6ed
dd
gkdl Nov 23, 2024
6dd6ff8
Merge branch 'main' of https://github.com/gkdl/be-onboarding-project
gkdl Nov 23, 2024
78c3878
위치이동
gkdl Nov 25, 2024
1916535
Delete be-onboarding-project directory
gkdl Nov 25, 2024
3276da8
멀티모듈 구성 및 JPA 설정 추가
gkdl Nov 26, 2024
5de91b5
Merge branch 'main' of https://github.com/gkdl/be-onboarding-project
gkdl Nov 26, 2024
0c6f17f
설문조사 생성 및 수정 API 추가
gkdl Nov 26, 2024
c6a276c
common-api 모듈 수정
gkdl Nov 26, 2024
51b86db
api 서버 파일 추가
gkdl Nov 26, 2024
b033b1c
응답 조회 및 생성 추가
gkdl Nov 27, 2024
9524b08
commit 누랃된 파일 및 설문지 생성 트랜잭션 처리
gkdl Nov 27, 2024
6544c48
Merge branch 'main' of https://github.com/gkdl/be-onboarding-project
gkdl Nov 27, 2024
2cc7460
응답 조회 페이징 처리및 검색 조건 추가
gkdl Nov 28, 2024
889e9ca
Merge branch 'main' of https://github.com/gkdl/be-onboarding-project
gkdl Nov 28, 2024
5327351
jar 파일 추가
gkdl Nov 28, 2024
4514b95
20241130(토) 오전 리뷰
heli-os Nov 30, 2024
42ce393
Revert "20241130(토) 오전 리뷰"
heli-os Nov 30, 2024
9848507
커밋
gkdl Dec 2, 2024
85ffd1a
Merge branch 'main' of https://github.com/gkdl/be-onboarding-project
gkdl Dec 2, 2024
9eb2fc3
ㅎㅎㅎ
gkdl Dec 4, 2024
432d0c2
test
gkdl Dec 5, 2024
1fd418a
ss
gkdl Dec 6, 2024
a1cc001
test
gkdl Dec 7, 2024
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
92 changes: 92 additions & 0 deletions LimDaeYoung/be-onboarding-project/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
buildscript {
ext {
//springBootVersion = '2.3.4.RELEASE' // current version
//springBootVersion = '2.4.13' // final patch
//springBootVersion = '2.5.14' // use gradle 7.5.1 above
//springBootVersion = '2.6.14' // final patch
springBootVersion = '2.7.9' // final patch

}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}


allprojects {
group = 'com.survey.api'

apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'java-library'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

sourceSets {
main {
resources {
srcDirs = ["src/main/resources","src/main/java"]
includes = ["**/*"]
excludes = ["**/*.java"]
}
}
}

// 관리하는 모듈의 공통 dependencies
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-logging'
implementation 'org.springframework.boot:spring-boot-starter-json'
implementation 'org.springframework.boot:spring-boot-starter-validation'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'com.fasterxml.jackson.core:jackson-databind'
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}

test {
useJUnitPlatform()
}
}

project(":common") {
bootJar.mainClass = ''
bootJar.enabled = false
jar.enabled = true
}

project(':common-api') {
dependencies {
api project(":common")
}
bootJar.enabled = false
jar.enabled = true
}

project(':survey-api') {
dependencies {
api project(":common-api")
}
}

bootJar.enabled = false
jar.enabled = true
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.survey.api.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CommonConfig {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.survey.api.dto;

import com.survey.api.util.DateUtil;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class SurveyResponseDto {
private Long id;
private String name;
private String description;
private String regDtm;
private String useYn;

public SurveyResponseDto(Long id, String name, String description, LocalDateTime regDtm, String useYn) {
this.id = id;
this.name = name;
this.description = description;
this.regDtm = DateUtil.getDateTimeString(regDtm);
this.useYn = useYn;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.survey.api.dto;

import com.survey.api.util.DateUtil;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class SurveyResponseItemDto {
private Long id;
private String itemName;
private String description;
private String answer;
private String itemType;
private boolean required;
private String regDtm;
private String useYn;

public SurveyResponseItemDto(Long id, String itemName, String description, String answer, String itemType, boolean required, LocalDateTime regDtm, String useYn) {
this.id = id;
this.itemName = itemName;
this.description = description;
this.answer = answer;
this.itemType = itemType;
this.required = required;
this.regDtm = DateUtil.getDateTimeString(regDtm);
this.useYn = useYn;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.survey.api.dto;

import com.survey.api.util.DateUtil;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class SurveyResponseOptionDto {
private Long id;
private String itemName;
private String description;
private String answer;
private String itemType;
private boolean required;
private String regDtm;
private String useYn;

public SurveyResponseOptionDto(Long id, String itemName, String description, String answer, String itemType, boolean required, LocalDateTime regDtm, String useYn) {
this.id = id;
this.itemName = itemName;
this.description = description;
this.answer = answer;
this.itemType = itemType;
this.required = required;
this.regDtm = DateUtil.getDateTimeString(regDtm);
this.useYn = useYn;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.survey.api.entity;

import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity(name="survey")
public class SurveyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
private String useYn;

@CreationTimestamp
@Column(updatable = false)
private LocalDateTime regDtm;

@OneToMany(mappedBy = "survey", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@Fetch(FetchMode.SUBSELECT)
private List<SurveyItemEntity> items; // 설문 항목 리스트목 리스트

public SurveyEntity(Long id) {
this.id = id;
}

public SurveyEntity(String name, String description, String useYn) {
this.name = name;
this.description = description;
this.useYn = useYn;
}

public SurveyEntity(Long id, String name, String description, String useYn) {
this.id = id;
this.name = name;
this.description = description;
this.useYn = useYn;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.survey.api.entity;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity(name="surveyItem")
public class SurveyItemEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String itemName;
private String description;
private String itemType;
private boolean required;
private String useYn;

@CreationTimestamp
@Column(updatable = false)
private LocalDateTime regDtm;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "surveyId")
private SurveyEntity survey; // 설문 ID 참조

@OneToMany(mappedBy = "surveyItem", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@Fetch(FetchMode.SUBSELECT)
private List<SurveyOptionEntity> options; // 선택 항목 리스트

public SurveyItemEntity(String itemName, String description, String itemType, boolean required, String useYn, SurveyEntity survey) {
this.itemName = itemName;
this.description = description;
this.itemType = itemType;
this.required = required;
this.useYn = useYn;
this.survey = survey;
}

public SurveyItemEntity(Long id, String itemName, String description, String itemType, boolean required, String useYn, SurveyEntity survey) {
this.id = id;
this.itemName = itemName;
this.description = description;
this.itemType = itemType;
this.required = required;
this.useYn = useYn;
this.survey = survey;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.survey.api.entity;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;

import javax.persistence.*;
import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity(name="surveyOption")
public class SurveyOptionEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String optionName;
private int optionOrder;
private String useYn;

@CreationTimestamp
@Column(updatable = false)
private LocalDateTime regDtm;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "itemId")
private SurveyItemEntity surveyItem; // 설문 항목 참조

public SurveyOptionEntity(String optionName, int optionOrder, String useYn, SurveyItemEntity surveyItem) {
this.optionName = optionName;
this.optionOrder = optionOrder;
this.useYn = useYn;
this.surveyItem = surveyItem;
}

public SurveyOptionEntity(Long id,String optionName, int optionOrder, String useYn, SurveyItemEntity surveyItem) {
this.id = id;
this.optionName = optionName;
this.optionOrder = optionOrder;
this.useYn = useYn;
this.surveyItem = surveyItem;
}

public SurveyOptionEntity(Long id) {
this.id = id;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.survey.api.entity;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity(name="surveyResponse")
public class SurveyResponseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@CreationTimestamp
@Column(updatable = false)
private LocalDateTime regDtm;

private long surveyId; // 설문 항목 참조

private String snapShotName;
private String snapShotDescription;

@OneToMany(mappedBy = "response", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<SurveyResponseItemEntity> responseItems; // 설문 항목 리스트

public SurveyResponseEntity(long surveyId, String snapShotName, String snapShotDescription) {
this.surveyId = surveyId;
this.snapShotName = snapShotName;
this.snapShotDescription = snapShotDescription;
}
}
Loading