Skip to content

Commit

Permalink
#3 feat: 내 포차 조회 API
Browse files Browse the repository at this point in the history
  • Loading branch information
ryr0121 committed Dec 10, 2023
1 parent 2342a09 commit 216777c
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public BaseResponse postStoreLike(@Parameter(hidden = true) @UserAccount User us
@PostMapping("")
public BaseResponse postStore(@Parameter(hidden = true) @UserAccount User user,
@RequestBody @Valid PostStoreReq req){
storeService.postStore(req);
storeService.postStore(user, req);
return BaseResponse.OK();
}

Expand Down
11 changes: 9 additions & 2 deletions src/main/java/com/s1350/sooljangmacha/store/entity/Store.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.s1350.sooljangmacha.global.entity.BaseEntity;
import com.s1350.sooljangmacha.store.dto.request.PostStoreReq;
import com.s1350.sooljangmacha.user.entity.User;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
Expand Down Expand Up @@ -41,6 +42,10 @@ public class Store extends BaseEntity {
@Size(max = 255)
private String content;

@ManyToOne
@JoinColumn(nullable = false, name = "user_id")
private User user;

@OneToMany(mappedBy = "store")
private List<StoreImg> storeImgList = new ArrayList<>();

Expand All @@ -51,23 +56,25 @@ public class Store extends BaseEntity {
private List<StoreReview> storeReviewList = new ArrayList<>();

@Builder
public Store(String x, String y, String name, String address, String phone, String content) {
public Store(String x, String y, String name, String address, String phone, String content, User user) {
this.x = x;
this.y = y;
this.name = name;
this.address = address;
this.phone = phone;
this.content = content;
this.user = user;
}

public static Store toEntity(PostStoreReq req){
public static Store toEntity(User user, PostStoreReq req){
return Store.builder()
.name(req.getName())
.address(req.getAddress())
.x(req.getX())
.y(req.getY())
.content(req.getContent())
.phone(req.getPhone())
.user(user)
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,11 @@ public void postStoreLike(User user, Long storeId) {

// 포장마차 등록
@Transactional
public void postStore(PostStoreReq req) {
public void postStore(User user, PostStoreReq req) {
// 기획관련 한 번 더 물어보기 (예외처리)
if(storeRepository.existsByXAndYAndIsEnable(req.getX(), req.getY(), true)) throw new BaseException(BaseResponseCode.EXISTS_STORE);
// 저장
Store store = Store.toEntity(req);
Store store = Store.toEntity(user, req);
storeRepository.save(store);
storeImgRepository.saveAll(StoreImg.toEntityList(req.getImgUrls(), store));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,4 +112,14 @@ public BaseResponse<List<GetStoreListRes>> getStoreOfLike(@Parameter(hidden = tr
return BaseResponse.OK(userService.getStoreOfLike(user, category));
}

@Operation(summary = "[김초원] 내 포차 조회", description = "마이페이지의 내 포차 조회")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "(S0001)요청에 성공했습니다."),
@ApiResponse(responseCode = "404", description = "(E0001)잘못된 요청입니다.", content = @Content(schema = @Schema(implementation = BaseResponse.class))),
})
@GetMapping("/stores")
public BaseResponse<List<GetStoreListRes>> getMyStore(@Parameter(hidden = true) @UserAccount User user) {
return BaseResponse.OK(userService.getMyStore(user));
}

}
4 changes: 4 additions & 0 deletions src/main/java/com/s1350/sooljangmacha/user/entity/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.s1350.sooljangmacha.global.entity.BaseEntity;
import com.s1350.sooljangmacha.global.entityListener.UserEntityListener;
import com.s1350.sooljangmacha.global.utils.AwsS3Util;
import com.s1350.sooljangmacha.store.entity.Store;
import com.s1350.sooljangmacha.store.entity.StoreLike;
import com.s1350.sooljangmacha.user.dto.request.PatchProfileReq;
import com.s1350.sooljangmacha.user.dto.request.SignupReq;
Expand Down Expand Up @@ -56,6 +57,9 @@ public class User extends BaseEntity {
@OneToMany(mappedBy = "user")
private List<StoreLike> storeLikeList = new ArrayList<>();

@OneToMany(mappedBy = "user")
private List<Store> storeList = new ArrayList<>();

public static User toEntity(SignupReq request) {
return User.builder()
.email(request.getEmail())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;

Expand Down Expand Up @@ -82,4 +83,11 @@ public List<GetStoreListRes> getStoreOfLike(User user, String category) {
.map(sl -> GetStoreListRes.toDto(sl.getStore(), storeLikeRepository.getLikeCountByIsEnable(sl.getStore()), storeLikeRepository.existsByUserAndStoreAndIsEnable(user, sl.getStore(), true)));
return storeService.sortStoreList(category, likeStoreList);
}

// 내 포차 관리
public List<GetStoreListRes> getMyStore(User user) {
return user.getStoreList().stream()
.map(s -> GetStoreListRes.toDto(s, storeLikeRepository.getLikeCountByIsEnable(s), storeLikeRepository.existsByUserAndStoreAndIsEnable(user, s, true)))
.collect(Collectors.toList());
}
}

0 comments on commit 216777c

Please sign in to comment.