Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,17 @@ dependencies {

annotationProcessor "jakarta.persistence:jakarta.persistence-api"

// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

//smtp
implementation 'org.springframework.boot:spring-boot-starter-mail'

// s3
implementation(enforcedPlatform("com.amazonaws:aws-java-sdk-bom:1.11.1000"))
implementation("com.amazonaws:aws-java-sdk-s3")
implementation("javax.xml.bind:jaxb-api:2.3.1")

}

tasks.named('test') {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package org.jullaene.walkmong_back.api.apply.repository;

import org.jullaene.walkmong_back.api.apply.domain.Apply;
import org.jullaene.walkmong_back.api.apply.domain.enums.MatchingStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ApplyRepository extends JpaRepository<Apply, Long> {
boolean existsByBoardIdAndMemberIdAndDelYn(Long boardId, Long memberId, String delYn);
boolean existsByBoardIdAndMemberIdAndMatchingStatusAndDelYn(Long boardId, Long memberId, MatchingStatus matchingStatus, String delYn);
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
package org.jullaene.walkmong_back.api.apply.service;

import lombok.RequiredArgsConstructor;
import org.jullaene.walkmong_back.api.apply.domain.enums.MatchingStatus;
import org.jullaene.walkmong_back.api.apply.repository.ApplyRepository;
import org.jullaene.walkmong_back.common.exception.CustomException;
import org.jullaene.walkmong_back.common.exception.ErrorType;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
public class ApplyService {
private final ApplyRepository applyRepository;
@Transactional(readOnly = true)
public void isValidWalkerByBoardIdAndMatchingStatus(Long memberId, Long boardId, MatchingStatus matchingStatus) {
if (!applyRepository.existsByBoardIdAndMemberIdAndMatchingStatusAndDelYn(boardId, memberId, matchingStatus, "N")) {
throw new CustomException(HttpStatus.UNAUTHORIZED, ErrorType.ACCESS_DENIED);
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@

@Repository
public interface BoardRepository extends JpaRepository<Board, Long> {
boolean existsByOwnerIdAndBoardIdAndDelYn(Long ownerId, Long boardId, String delYn);
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,30 @@
package org.jullaene.walkmong_back.api.board.service;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jullaene.walkmong_back.api.board.repository.BoardRepository;
import org.jullaene.walkmong_back.common.exception.CustomException;
import org.jullaene.walkmong_back.common.exception.ErrorType;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


@Slf4j
@Service
@RequiredArgsConstructor
public class BoardService {
private final BoardRepository boardRepository;
/**
* 게시글 아이디와 삭제 여부로 해당 게시글의 유효한 반려인인지 확인
* */
@Transactional(readOnly = true)
public void isValidOwnerByBoardIdAndDelYn (Long memberId, Long boardId, String delYn) {
log.info("memberId : " + memberId + " boardId : " + boardId);
if (!boardRepository.existsByOwnerIdAndBoardIdAndDelYn(memberId, boardId, delYn)) {
throw new CustomException(HttpStatus.UNAUTHORIZED, ErrorType.ACCESS_DENIED);
}
}


}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package org.jullaene.walkmong_back.api.review.domain;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicUpdate;
import org.jullaene.walkmong_back.api.review.domain.enums.HashtagWalkerNm;
import org.jullaene.walkmong_back.common.BaseEntity;

@Table(name = "hashtag_to_walker")
@Entity
@NoArgsConstructor
@DynamicUpdate
public class HashtagToWalker extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "hashtag_to_walker_id", nullable = false)
private Long hashtagToWalkerId;

@Comment("후기 아이디")
private Long reviewToWalkerId;

@Comment("후기 대상 아이디")
private Long reviewTargetId;

@Comment("해시태그 명")
@Enumerated(EnumType.STRING)
private HashtagWalkerNm hashtagWalkerNm;

@Builder
public HashtagToWalker(Long reviewToWalkerId, Long reviewTargetId, HashtagWalkerNm hashtagWalkerNm) {
this.reviewToWalkerId = reviewToWalkerId;
this.reviewTargetId = reviewTargetId;
this.hashtagWalkerNm = hashtagWalkerNm;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package org.jullaene.walkmong_back.api.review.domain;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicUpdate;
import org.jullaene.walkmong_back.api.review.domain.enums.Activity;
import org.jullaene.walkmong_back.api.review.domain.enums.Aggressiveness;
import org.jullaene.walkmong_back.api.review.domain.enums.Sociality;
import org.jullaene.walkmong_back.api.review.dto.req.ReviewToOwnerReqDto;
import org.jullaene.walkmong_back.common.BaseEntity;

@Table(name = "review_to_owner")
@Entity
@NoArgsConstructor
@DynamicUpdate
public class ReviewToOwner extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "review_to_owner_id", nullable = false)
private Long reviewToOwnerId;

@Comment("게시글 아이디")
private Long boardId;

@Comment("후기 작성자 아이디")
private Long reviewerId;

@Comment("후기 대상자 아이디")
private Long reviewTargetId;

@Comment("후기")
private String content;

@Comment("좋음/싫음")
@Column(name = "good_yn", columnDefinition = "VARCHAR(1) default 'N'")
private String goodYn;

@Comment("사회성")
@Enumerated(EnumType.STRING)
private Sociality sociality;

@Comment("활동량")
@Enumerated(EnumType.STRING)
private Activity activity;

@Comment("공격력")
@Enumerated(EnumType.STRING)
private Aggressiveness aggressiveness;

@Comment("아쉬운 점")
private String disappointment;

@Builder
public ReviewToOwner(ReviewToOwnerReqDto reviewToOwnerReqDto, Long reviewerId) {
this.boardId = reviewToOwnerReqDto.getBoardId();
this.reviewerId = reviewerId;
this.reviewTargetId = reviewToOwnerReqDto.getOwnerId();
this.goodYn = reviewToOwnerReqDto.getGoodYn();
this.content = reviewToOwnerReqDto.getContent();
this.sociality = reviewToOwnerReqDto.getSociality();
this.activity = reviewToOwnerReqDto.getActivity();
this.aggressiveness = reviewToOwnerReqDto.getAggressiveness();
this.disappointment = reviewToOwnerReqDto.getDisappointment();
}

public Long getReviewToOwnerId () {
return reviewToOwnerId;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.jullaene.walkmong_back.api.review.domain;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicUpdate;

@Table(name = "review_to_owner_image")
@Entity
@NoArgsConstructor
@DynamicUpdate
public class ReviewToOwnerImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "review_to_owner_image_id", nullable = false)
private Long reviewToOwnerImageId;

@Comment("반려인 후기 아이디")
private Long reviewToOwnerId;

@Comment("이미지")
private String imageUrl;

@Builder
public ReviewToOwnerImage(Long reviewToOwnerId, String imageUrl) {
this.reviewToOwnerId = reviewToOwnerId;
this.imageUrl = imageUrl;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package org.jullaene.walkmong_back.api.review.domain;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicUpdate;
import org.jullaene.walkmong_back.api.review.dto.req.ReviewToWalkerReqDto;
import org.jullaene.walkmong_back.common.BaseEntity;

@Table(name = "review_to_walker")
@Entity
@NoArgsConstructor
@DynamicUpdate
public class ReviewToWalker extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "review_to_walker_id", nullable = false)
private Long reviewToWalkerId;

@Comment("게시글 아이디")
private Long boardId;

@Comment("후기 작성자 아이디")
private Long reviewerId;

@Comment("후기 대상자 아이디")
private Long reviewTargetId;

@Comment("후기")
private String content;

@Comment("시간 약속 준수 여부")
private Float timePunctuality;

@Comment("소통")
private Float communication;

@Comment("태도")
private Float attitude;

@Comment("산책 요청사항 이행")
private Float taskCompletion;

@Comment("산책 중 사진 공유")
private Float photoSharing;

@Builder
public ReviewToWalker(ReviewToWalkerReqDto reviewToWalkerReqDto, Long reviewerId) {
this.boardId = reviewToWalkerReqDto.getBoardId();
this.reviewerId = reviewerId;
this.reviewTargetId = reviewToWalkerReqDto.getWalkerId();
this.content = reviewToWalkerReqDto.getContent();
this.timePunctuality = reviewToWalkerReqDto.getTimePunctuality();
this.communication = reviewToWalkerReqDto.getCommunication();
this.attitude = reviewToWalkerReqDto.getAttitude();
this.taskCompletion = reviewToWalkerReqDto.getTaskCompletion();
this.photoSharing = reviewToWalkerReqDto.getPhotoSharing();
}

public Long getReviewToWalkerId () {
return reviewToWalkerId;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.jullaene.walkmong_back.api.review.domain;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicUpdate;

@Table(name = "review_to_walker_image")
@Entity
@NoArgsConstructor
@DynamicUpdate
public class ReviewToWalkerImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "review_to_walker_image_id", nullable = false)
private Long reviewToWalkerImageId;

@Comment("산책자 후기 아이디")
private Long reviewToWalkerId;

@Comment("이미지")
private String imageUrl;

@Builder
public ReviewToWalkerImage(Long reviewToWalkerId, String imageUrl) {
this.reviewToWalkerId = reviewToWalkerId;
this.imageUrl = imageUrl;
}
}
Loading