Skip to content

Commit b2f0c9f

Browse files
committed
refactor: 도메인 전체 리팩토링
1 parent b8b3ef7 commit b2f0c9f

34 files changed

+124
-127
lines changed

src/main/java/com/threestar/trainus/domain/comment/controller/CommentController.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
import com.threestar.trainus.domain.comment.dto.CommentPageResponseDto;
1717
import com.threestar.trainus.domain.comment.dto.CommentResponseDto;
1818
import com.threestar.trainus.domain.comment.service.CommentService;
19+
import com.threestar.trainus.global.annotation.LoginUser;
1920
import com.threestar.trainus.global.unit.BaseResponse;
2021

2122
import io.swagger.v3.oas.annotations.Operation;
2223
import io.swagger.v3.oas.annotations.tags.Tag;
23-
import jakarta.servlet.http.HttpSession;
2424
import jakarta.validation.Valid;
2525
import lombok.RequiredArgsConstructor;
2626

@@ -37,8 +37,7 @@ public class CommentController {
3737
@PostMapping("/{lessonId}")
3838
@Operation(summary = "댓글 작성", description = "레슨 ID에 해당되는 댓글을 작성합니다.")
3939
public ResponseEntity<BaseResponse<CommentResponseDto>> createComment(@PathVariable Long lessonId,
40-
@Valid @RequestBody CommentCreateRequestDto request, HttpSession session) {
41-
Long userId = (Long)session.getAttribute("LOGIN_USER");
40+
@Valid @RequestBody CommentCreateRequestDto request, @LoginUser Long userId) {
4241
CommentResponseDto comment = commentService.createComment(request, lessonId, userId);
4342
return BaseResponse.ok("댓글 등록 완료되었습니다", comment, HttpStatus.CREATED);
4443
}
@@ -56,9 +55,8 @@ public ResponseEntity<BaseResponse<CommentPageResponseDto>> readAll(@PathVariabl
5655

5756
@DeleteMapping("/{commentId}")
5857
@Operation(summary = "댓글 삭제", description = "댓글 ID에 해당되는 댓글을 삭제합니다.")
59-
public ResponseEntity<Void> deleteComment(@PathVariable Long commentId, HttpSession session) {
60-
Long userId = (Long)session.getAttribute("LOGIN_USER");
58+
public ResponseEntity<BaseResponse<Void>> deleteComment(@PathVariable Long commentId, @LoginUser Long userId) {
6159
commentService.delete(commentId, userId);
62-
return ResponseEntity.noContent().build();
60+
return BaseResponse.okOnlyStatus(HttpStatus.NO_CONTENT);
6361
}
6462
}

src/main/java/com/threestar/trainus/domain/comment/dto/CommentCreateRequestDto.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import jakarta.validation.constraints.NotBlank;
44
import jakarta.validation.constraints.Size;
5-
import lombok.Data;
5+
import lombok.Getter;
66

7-
@Data
7+
@Getter
88
public class CommentCreateRequestDto {
99
@NotBlank(message = "댓글 내용은 필수입니다")
1010
@Size(max = 255, message = "댓글은 255자 이내여야 합니다.")

src/main/java/com/threestar/trainus/domain/comment/service/CommentService.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,9 @@
1212
import com.threestar.trainus.domain.comment.mapper.CommentMapper;
1313
import com.threestar.trainus.domain.comment.repository.CommentRepository;
1414
import com.threestar.trainus.domain.lesson.admin.entity.Lesson;
15-
import com.threestar.trainus.domain.lesson.admin.repository.LessonRepository;
15+
import com.threestar.trainus.domain.lesson.admin.service.AdminLessonService;
1616
import com.threestar.trainus.domain.user.entity.User;
17-
import com.threestar.trainus.domain.user.repository.UserRepository;
18-
import com.threestar.trainus.global.exception.domain.ErrorCode;
19-
import com.threestar.trainus.global.exception.handler.BusinessException;
17+
import com.threestar.trainus.domain.user.service.UserService;
2018
import com.threestar.trainus.global.utils.PageLimitCalculator;
2119

2220
import lombok.RequiredArgsConstructor;
@@ -25,16 +23,14 @@
2523
@RequiredArgsConstructor
2624
public class CommentService {
2725

28-
private final UserRepository userRepository;
29-
private final LessonRepository lessonRepository;
26+
private final AdminLessonService adminLessonService;
3027
private final CommentRepository commentRepository;
28+
private final UserService userService;
3129

3230
@Transactional
3331
public CommentResponseDto createComment(CommentCreateRequestDto request, Long lessonId, Long userId) {
34-
Lesson findLesson = lessonRepository.findById(lessonId)
35-
.orElseThrow(() -> new BusinessException(ErrorCode.LESSON_NOT_FOUND));
36-
User findUser = userRepository.findById(userId)
37-
.orElseThrow(() -> new BusinessException(ErrorCode.USER_NOT_FOUND));
32+
Lesson findLesson = adminLessonService.findLessonById(lessonId);
33+
User findUser = userService.getUserById(userId);
3834
Comment parent = findParent(request);
3935

4036
Comment newComment = Comment.builder()

src/main/java/com/threestar/trainus/domain/coupon/user/dto/CouponResponseDto.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,7 @@ public class CouponResponseDto {
2020
private LocalDateTime expirationDate;
2121
private OwnedStatus ownedStatus;
2222
private Integer quantity;
23-
private String category;
23+
private CouponCategory category;
2424
private LocalDateTime openTime;
2525

26-
public CouponResponseDto(Long couponId, String couponName, String discountPrice,
27-
Integer minOrderPrice, LocalDateTime expirationDate,
28-
String ownedStatus, Integer quantity, CouponCategory category,
29-
LocalDateTime openTime) {
30-
this.couponId = couponId;
31-
this.couponName = couponName;
32-
this.discountPrice = discountPrice;
33-
this.minOrderPrice = minOrderPrice;
34-
this.expirationDate = expirationDate;
35-
this.ownedStatus = OwnedStatus.valueOf(ownedStatus);
36-
this.quantity = quantity;
37-
this.category = category.name();
38-
this.openTime = openTime;
39-
}
4026
}

src/main/java/com/threestar/trainus/domain/coupon/user/dto/CreateUserCouponResponseDto.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.time.LocalDateTime;
44

55
import com.fasterxml.jackson.annotation.JsonFormat;
6+
import com.threestar.trainus.domain.coupon.user.entity.CouponStatus;
67

78
import lombok.Builder;
89
import lombok.Getter;
@@ -15,6 +16,6 @@ public class CreateUserCouponResponseDto {
1516
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
1617
private LocalDateTime createdAt;
1718
private LocalDateTime expirationDate;
18-
private String status;
19+
private CouponStatus status;
1920

2021
}

src/main/java/com/threestar/trainus/domain/coupon/user/dto/UserCouponResponseDto.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.time.LocalDateTime;
44

5+
import com.threestar.trainus.domain.coupon.user.entity.CouponStatus;
6+
57
import lombok.Builder;
68
import lombok.Getter;
79

@@ -13,6 +15,6 @@ public class UserCouponResponseDto {
1315
private String discountPrice;
1416
private Integer minOrderPrice;
1517
private LocalDateTime expirationDate;
16-
private String status;
18+
private CouponStatus status;
1719
private LocalDateTime useDate;
1820
}

src/main/java/com/threestar/trainus/domain/coupon/user/entity/Coupon.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class Coupon extends BaseDateEntity {
3535
@GeneratedValue(strategy = GenerationType.IDENTITY)
3636
private Long id;
3737

38+
@Builder.Default
3839
@OneToMany(mappedBy = "coupon")
3940
private List<UserCoupon> userCoupons = new ArrayList<>();
4041

src/main/java/com/threestar/trainus/domain/coupon/user/entity/UserCoupon.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import jakarta.persistence.UniqueConstraint;
1818
import lombok.AccessLevel;
1919
import lombok.AllArgsConstructor;
20-
import lombok.Builder;
2120
import lombok.Getter;
2221
import lombok.NoArgsConstructor;
2322

@@ -29,7 +28,6 @@
2928
}
3029
)
3130
@Getter
32-
@Builder
3331
@AllArgsConstructor
3432
@NoArgsConstructor(access = AccessLevel.PROTECTED)
3533
public class UserCoupon extends BaseDateEntity {

src/main/java/com/threestar/trainus/domain/coupon/user/mapper/CouponMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static CouponResponseDto toDto(Coupon coupon, boolean owned) {
1717
.expirationDate(coupon.getExpirationDate())
1818
.ownedStatus(owned ? OwnedStatus.OWNED : OwnedStatus.NOT_OWNED)
1919
.quantity(coupon.getQuantity())
20-
.category(coupon.getCategory().name())
20+
.category(coupon.getCategory())
2121
.openTime(coupon.getOpenAt())
2222
.build();
2323
}

src/main/java/com/threestar/trainus/domain/coupon/user/mapper/UserCouponMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static CreateUserCouponResponseDto toCreateUserCouponResponseDto(UserCoup
1818
.userId(userCoupon.getUser().getId())
1919
.createdAt(userCoupon.getCreatedAt())
2020
.expirationDate(userCoupon.getExpirationDate())
21-
.status(userCoupon.getStatus().name())
21+
.status(userCoupon.getStatus())
2222
.build();
2323
}
2424

@@ -30,7 +30,7 @@ public static UserCouponResponseDto toUserCouponResponseDto(UserCoupon userCoupo
3030
.discountPrice(coupon.getDiscountPrice())
3131
.minOrderPrice(coupon.getMinOrderPrice())
3232
.expirationDate(coupon.getExpirationDate())
33-
.status(coupon.getStatus().name())
33+
.status(coupon.getStatus())
3434
.useDate(userCoupon.getUseDate())
3535
.build();
3636
}

0 commit comments

Comments
 (0)