Skip to content

Commit

Permalink
#18 [Fix] 충돌 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
Anna-Jin committed Jul 11, 2022
2 parents 691b793 + ba79477 commit 37744cf
Show file tree
Hide file tree
Showing 13 changed files with 194 additions and 13 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.batch:spring-batch-test'
testImplementation 'org.springframework.security:spring-security-test'
// WebClient
// WebClient
compileOnly 'org.springframework.boot:spring-boot-starter-webflux'
compileOnly 'org.projectreactor:reactor-spring:1.0.1.RELEASE'
compileOnly 'org.apache.httpcomponents:httpclient:4.5.13'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
public class BookmarkController {
private final BookmarkService bookmarkService;

/* 북마크 생성 폴더 담기 */
@PostMapping("/api/bookmark")
/** 북마크 생성 폴더 담기 */
@PostMapping("/bookmark")
public void bookmark(@RequestBody BookmarkReqDTO bookmarkReqDTO){

bookmarkService.bookmark(bookmarkReqDTO);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,31 @@ public class FolderController {
private final FolderService folderService;


/* 폴더 신규 생성 */
@PostMapping("/api/folder")
/** 폴더 신규 생성 */
@PostMapping("/folder")
public void folder (@RequestBody FolderReqDTO folderReqDTO){

folderService.folder(folderReqDTO);
}

/* 폴더 삭제 -> 삭제 시 안에 담긴 모든 북마크가 삭제됨 */

@DeleteMapping("/api/folder/{folderId}")
@DeleteMapping("/folder/{folderId}")
public void folderDelete (@PathVariable int folderId){

folderService.folderDelete(folderId);
}

/* 폴더 명 변경 */

@PutMapping("/api/folderUpdate/{folderId}")
@PutMapping("/folderUpdate/{folderId}")
public void folderUpdate (@PathVariable int folderId, @RequestParam String newFolderName){
System.out.println(newFolderName);

folderService.folderUpdate(folderId, newFolderName);
}

@PutMapping("/api/folderList/{userId}")
@PutMapping("/folderList/{userId}")
public List<FolderResDTO> folderList (@PathVariable int userId){

return folderService.folderList(userId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@


import com.fasterxml.jackson.annotation.JsonIgnore;

import com.mpnp.baechelin.user.entity.user.User;
import com.mpnp.baechelin.util.TimeStamped;
import lombok.*;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.mpnp.baechelin.bookmark.dto.FolderReqDTO;
import com.mpnp.baechelin.bookmark.dto.FolderResDTO;
import com.mpnp.baechelin.bookmark.repository.FolderRepository;

import com.mpnp.baechelin.user.entity.user.User;
import com.mpnp.baechelin.user.repository.UserRepository;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mpnp.baechelin.util;
package com.mpnp.baechelin.config.s3;

import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ public class ReviewController {
private final ReviewService reviewService;

/**리뷰 작성*/
@PostMapping("/api/review")
@PostMapping("/review")
public ReviewResDTO review(@RequestParam double point,
@RequestParam String comment,
@RequestParam int storeId,
@RequestParam int userId,
@RequestParam(required = false) MultipartFile imageFile) throws IOException {

ReviewReqDTO reviewReqDTO =new ReviewReqDTO();
reviewReqDTO
ReviewReqDTO
.builder()
.point(point)
.comment(comment)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
@RequiredArgsConstructor
public class ReviewService {
private final ReviewRepository reviewRepository;
private final UserRepository userRepository;
private final UserRepository userRepository;
private final StoreRepository storeRepository;
private final TagRepository tagRepository;
private final AmazonS3Client amazonS3Client;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/mpnp/baechelin/store/domain/Store.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public class Store {

// 연관관계 매핑
@OneToMany(mappedBy = "store", cascade = CascadeType.ALL, orphanRemoval = true)
private List<StoreImage> storeImageList;
private List<StoreImage> storeImageList = new ArrayList<>();

public Store(PublicApiResponseDto.Row row) {
//storeId - 임시
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.mpnp.baechelin.user.controller;

import com.mpnp.baechelin.user.dto.UserInfoResponseDto;
import com.mpnp.baechelin.user.entity.user.User;
import com.mpnp.baechelin.user.service.UserInfoService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/userinfo")
@RequiredArgsConstructor
@Slf4j
public class UserInfoController {
private final UserInfoService userInfoService;

@GetMapping
// Security 추가 후 변경할 예정
// public ResponseEntity<UserInfoResponseDto> getUserInfo(@AuthenticationPrincipal User user) {
public ResponseEntity<UserInfoResponseDto> getUserInfo(@RequestParam Integer userId) {
log.warn("USERID {} " , userId);
// return new ResponseEntity<>(userInfoService.giveUserInfo(user), HttpStatus.OK);
return new ResponseEntity<>(userInfoService.giveUserInfo(userId), HttpStatus.OK);
}
}
120 changes: 120 additions & 0 deletions src/main/java/com/mpnp/baechelin/user/dto/UserInfoResponseDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
package com.mpnp.baechelin.user.dto;


import com.mpnp.baechelin.bookmark.domain.Bookmark;
import com.mpnp.baechelin.bookmark.domain.Folder;
import com.mpnp.baechelin.review.domain.Review;
import com.mpnp.baechelin.tag.domain.Tag;
import com.mpnp.baechelin.user.entity.user.User;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
public class UserInfoResponseDto {
// User info
private String name;
private List<ReviewResponseDto> reviewList;
private List<BookmarkFolderResponseDto> bookmarkFolderList;

public UserInfoResponseDto(User user) {
this.name = user.getName();
this.reviewList = user.getReviewList().stream().map(ReviewResponseDto::new).collect(Collectors.toList());
this.bookmarkFolderList = user.getFolderList().stream().map(BookmarkFolderResponseDto::new).collect(Collectors.toList());
//folder

}

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
static class BookmarkFolderResponseDto {
private int userId;
private List<BookmarkResponseDto> folders; // 폴더 여러 개

public BookmarkFolderResponseDto(Folder folder) {
this.userId = folder.getUserId().getId();
this.folders = folder.getBookmarkList().stream().map(BookmarkResponseDto::new).collect(Collectors.toList());
}
}

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
static class BookmarkResponseDto {
private int folderId;
private int storeId;

public BookmarkResponseDto(Bookmark bookmark){
this.folderId = bookmark.getFolderId().getId();
this.storeId = bookmark.getStoreId().getId();
}
}

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
static class ReviewResponseDto {
int id; // storeId
int review; // reviewId
Double point;

String comment;
String reviewImageUrl;

TagResponseDto tag;

LocalDateTime createdAt;
LocalDateTime modifiedAt;

public ReviewResponseDto(Review review) {
this.id = review.getStoreId().getId();
this.review = review.getId();
this.point = review.getPoint();
this.comment = review.getReview();
this.reviewImageUrl = review.getReviewImageUrl();
this.tag = new TagResponseDto(review.getTagId(), review);
}
}

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
static class TagResponseDto {
int id; // 태그 아이디
int review; // 리뷰 아이디

@Builder.Default
char bKiosk = 'N', bTable = 'N', bMenu = 'N', bWheelchair = 'N', bHelp = 'N', bAutoDoor = 'N';
@Builder.Default
char fDelicious = 'N', fClean = 'N', fVibe = 'N', fQuantity = 'N', fPrice = 'N', fGoodToEat = 'N';

public TagResponseDto(Tag tag, Review review) {
this.id = tag.getId();
this.review = review.getId();
this.bKiosk = tag.getBKiosk();
this.bTable = tag.getBTable();
this.bMenu = tag.getBMenu();
this.bWheelchair = tag.getBWheelchair();
this.bHelp = tag.getBHelp();
this.bAutoDoor = tag.getBAutoDoor();
this.fDelicious = tag.getFDelicious();
this.fClean = tag.getFClean();
this.fVibe = tag.getFVibe();
this.fQuantity = tag.getFQuantity();
this.fPrice = tag.getFPrice();
this.fGoodToEat = tag.getFGoodToEat();
}
}

}
7 changes: 7 additions & 0 deletions src/main/java/com/mpnp/baechelin/user/entity/user/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;

@Entity
Expand Down Expand Up @@ -78,4 +79,10 @@ public User(String socialId,
this.providerType = providerType;
this.roleType = roleType;
}

@OneToMany(mappedBy = "userId", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Review> reviewList;

@OneToMany(mappedBy = "userId", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Folder> folderList = new ArrayList<>();
}
24 changes: 24 additions & 0 deletions src/main/java/com/mpnp/baechelin/user/service/UserInfoService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.mpnp.baechelin.user.service;

import com.mpnp.baechelin.user.dto.UserInfoResponseDto;
import com.mpnp.baechelin.user.entity.user.User;
import com.mpnp.baechelin.user.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;

@Transactional
@Service
@RequiredArgsConstructor
public class UserInfoService {
private final UserRepository userRepository;

// TODO Security 추가 후 변경할 예정
// public UserInfoResponseDto giveUserInfo(User user){
public UserInfoResponseDto giveUserInfo(Integer userId) {
User targetUser = userRepository.findById(userId).orElseThrow(() -> new IllegalArgumentException("test - no user"));
return new UserInfoResponseDto(targetUser);
// return new UserInfoResponseDto(user);
}
}

0 comments on commit 37744cf

Please sign in to comment.