Skip to content

Commit e062370

Browse files
authored
[Feat] 프로젝트 등록 시 개별질문 등록 구현
[Feat] 프로젝트 등록 시 개별질문 등록 구현
2 parents 18f94d2 + b8fb57a commit e062370

File tree

8 files changed

+120
-15
lines changed

8 files changed

+120
-15
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package wowmarket.wow_server.domain;
2+
3+
import jakarta.persistence.*;
4+
import lombok.*;
5+
6+
@Entity
7+
@Getter
8+
@Builder
9+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
10+
@AllArgsConstructor
11+
public class OrderAnswer {
12+
@Id
13+
@GeneratedValue(strategy = GenerationType.IDENTITY)
14+
@Column(name = "order_answer_id")
15+
private Long id;
16+
17+
@ManyToOne(fetch = FetchType.LAZY)
18+
@JoinColumn(name = "order_question_id")
19+
private OrderQuestion orderQuestion;
20+
21+
@ManyToOne(fetch = FetchType.LAZY)
22+
@JoinColumn(name = "order_id")
23+
private Orders orders;
24+
25+
private String answer;
26+
27+
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package wowmarket.wow_server.domain;
2+
3+
import jakarta.persistence.*;
4+
import lombok.*;
5+
6+
@Entity
7+
@Getter
8+
@Builder
9+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
10+
@AllArgsConstructor
11+
public class OrderQuestion {
12+
@Id
13+
@GeneratedValue(strategy = GenerationType.IDENTITY)
14+
@Column(name = "order_question_id")
15+
private Long id;
16+
17+
@ManyToOne(fetch = FetchType.LAZY)
18+
@JoinColumn(name = "project_id")
19+
@Setter
20+
private Project project;
21+
22+
@Column(nullable = false)
23+
private String question;
24+
25+
@Column(columnDefinition="tinyint(0) default 0")
26+
private boolean essential;
27+
28+
}

src/main/java/wowmarket/wow_server/domain/ReceiveType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44

55

66
public enum ReceiveType {
7-
delivery, pickup;
7+
DELIVERY, PICKUP, ALL;
88
}

src/main/java/wowmarket/wow_server/register/dto/RegisterProjectDto.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,25 +37,27 @@ public class RegisterProjectDto {
3737

3838
@NotNull
3939
private List<RegisterItemDto> item;
40+
private List<RegisterQuestionDto> questions;
41+
4042
@NotNull
41-
private LocalDateTime start_date;
43+
private LocalDateTime startDate;
4244
@NotNull
43-
private LocalDateTime end_date;
45+
private LocalDateTime endDate;
4446
@NotNull
45-
private String receive_type; //delivery, pickup
46-
private String receive_address; //직접수령 시 픽업장소
47+
private String receiveType; //delivery, pickup, all
48+
private String receiveAddress; //직접수령 시 픽업장소
4749
private String deliveryType; // 배송 시 배송 방법
48-
private Long delivery_fee; // 배송비
50+
private Long deliveryFee; // 배송비
4951

5052

5153
@NotNull
5254
private String bank; //은행명
5355
@NotNull
5456
private String account; //계좌
5557
@NotNull
56-
private String account_holder_name; //예금주
58+
private String accountHolderName; //예금주
5759
@NotNull
58-
private Boolean sell_to_all;
60+
private Boolean sellToAll;
5961

6062

6163
@Builder
@@ -71,19 +73,20 @@ public Project toEntity(){
7173
.image1(image1)
7274
.image2(image2)
7375
.image3(image3)
74-
.startDate(start_date)
75-
.endDate(end_date)
76+
.startDate(startDate)
77+
.endDate(endDate)
7678
.participant_number(0)
77-
.receive_type(ReceiveType.valueOf(receive_type))
78-
.receive_address(receive_address)
79+
.receive_type(ReceiveType.valueOf(receiveType))
80+
.receive_address(receiveAddress)
7981
.deliveryType(deliveryType)
80-
.delivery_fee(delivery_fee)
82+
.delivery_fee(deliveryFee)
8183
.bank(bank)
8284
.account(account)
83-
.account_holder_name(account_holder_name)
84-
.sellToAll(sell_to_all)
85+
.account_holder_name(accountHolderName)
86+
.sellToAll(sellToAll)
8587
.isDel(Boolean.FALSE)
8688
.isEnd(Boolean.FALSE)
89+
.final_achievement_rate(0L)
8790
.build();
8891
}
8992
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package wowmarket.wow_server.register.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Getter;
6+
import lombok.NoArgsConstructor;
7+
import wowmarket.wow_server.domain.DemandItem;
8+
import wowmarket.wow_server.domain.OrderQuestion;
9+
10+
@Getter
11+
@NoArgsConstructor
12+
@AllArgsConstructor
13+
@Builder
14+
public class RegisterQuestionDto {
15+
private String question;
16+
17+
@Builder
18+
public OrderQuestion toOrderQuestion(){
19+
return OrderQuestion
20+
.builder()
21+
.question(question)
22+
.build();
23+
}
24+
}

src/main/java/wowmarket/wow_server/register/service/RegisterService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class RegisterService {
2323
private final DemandProjectRepository demandProjectRepository;
2424
private final DemandItemRepository demandItemRepository;
2525
private final CategoryRepository categoryRepository;
26+
private final OrderQuestionRepository orderQuestionRepository;
2627

2728

2829
public Long registerProject(RegisterProjectDto requestDto, User user) throws Exception {
@@ -47,6 +48,13 @@ public Long registerProject(RegisterProjectDto requestDto, User user) throws Exc
4748
item.setProject(project);
4849
itemRepository.save(item);
4950
}
51+
52+
for (int i = 0; i < requestDto.getQuestions().size(); i++) {
53+
OrderQuestion orderQuestion = requestDto.getQuestions().get(i).toOrderQuestion();
54+
orderQuestion.setProject(project);
55+
orderQuestionRepository.save(orderQuestion);
56+
}
57+
5058
return project.getId();
5159
}
5260
public List<Category> findCategories(){
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package wowmarket.wow_server.repository;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
import wowmarket.wow_server.domain.OrderAnswer;
5+
6+
public interface OrderAnswerRepository extends JpaRepository<OrderAnswer, Long> {
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package wowmarket.wow_server.repository;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
import wowmarket.wow_server.domain.OrderQuestion;
5+
6+
public interface OrderQuestionRepository extends JpaRepository<OrderQuestion, Long> {
7+
}

0 commit comments

Comments
 (0)