Skip to content

sailing6WeekTeam8/Clone_Backend

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

항해99 클론코딩 8조 - 당근마켓

🤷 프로젝트 소개

당근마켓 클론 코딩입니다.

[당근마켓!] http://jeonhaekang.shop.s3-website.ap-northeast-2.amazonaws.com

시연 영상입니다! 링크로 들어가시면 확인 가능합니다!

https://youtu.be/MD0YCfuaAkQ

🏼‍💻 개발기간 및 팀원소개

기간: 2022.02.18 ~ 2022.02.24

프론트 - 전해강,유영탁

API 설계서

https://www.notion.so/8-Clone-Coding-e23b83af71d744b492a8771ee301d9cd

사용 기술

Back-end


Front-end

Version Control

🧾ERD

### Entity Relatuonship Diagram

엔티티 연관관계

🏷 페이지 구현하려던 와이어프레임

회원가입 로그인

메인페이지

디테일 페이지

마이 페이지

후기 페이지

작성 페이지

🏷 API Table

자세히 보기

🧾Trouble Shooting

MultipartFile과 JSON으로 보낼때 프론트측에 제대로 데이터가 안가는 문제
@PostMapping("/post")
    public ResponseEntity<String> writePost(@RequestPart("file") MultipartFile multipartFile, @RequestPart("post") PostsRequestDto requestDto,
                                            @AuthenticationPrincipal UserDetailsImpl userDetails) throws IOException {
        System.out.println(requestDto.getContent());

        // String image = s3Uploader.upload(multipartFile, "postImage");
        String image = s3Uploader.upload(multipartFile,"postImage");
        requestDto.setImage(image);
        postService.writePost(requestDto, userDetails.getUser());
        return ResponseEntity.ok()
                .body("작성되었습니다 true");
    }

@RequestPart로 둘다 multipart/form-data 형태로 전송하는 것으로 해결

게시물 삭제시 Likes와의 연관 관계로 인해 좋아요를 누르면 삭제 안되는 문제
 @JsonIgnore
    @OneToMany(cascade = CascadeType.REMOVE, mappedBy = "post")
    private List<Likes> LikesList  = new ArrayList<>();

cascade = CascadeType.REMOVE 를 이용하여 해결

거래를 한 상대에게 무한정으로 후기를 남길수 있는 문제
public RatedDto addRate(RateDto rateDto){ //유저 평가하기

        RatedDto ratedDto = new RatedDto();
        Post post = postRepository.findById(rateDto.getPostId()).get();
        post.setRated(true);


        int rate1 = rateDto.getRate();
        User user = userRepository.findById(rateDto.getId()).get();  //평가 점수 더하는 로직
        int currentRate = user.getRate();
        user.setRate(currentRate + rate1);
        User user2 = userRepository.save(user);


        rateDto.setRate(user2.getRate());
        ratedDto.setRated(true);
        return ratedDto;
    }

프론트측에 유저의 아이디만 받고 평점을 남기는 식으로 하였는데 이번에 post아이디도 함께 받아서 포스트에 boolean rated = false;//평가여부 항목을 추가하여 post 아이디를 받아서 해당 게시물을 찾고 true로 바꿔서 거래를 한 게시물을 알려주었습니다.

S3 버킷 관련 ACL 관련 에러

AWS에 들어가서 객체 소유권에 대한 ACL 활성화를 해주었다

About

클론코딩 백엔드 서버입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%