Skip to content
Merged
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
1 change: 1 addition & 0 deletions refrigerator/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions refrigerator/.idea/modules/refrigerator.main.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ public class Recipe {
@JsonManagedReference
private List<RecipeSource> recipeSource = new ArrayList<>() ; // 여러 Source가 들어갈 수 있으니까 list로 수정

@OneToMany(mappedBy = "recipe", cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.LAZY)
@JsonManagedReference
private List<RecipeStep> recipeStep = new ArrayList<>();


@JoinColumn(name = "recipe_category")
@ManyToOne
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import lombok.Data;

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

@Data
@Entity
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package moja.refrigerator.aggregate.recipe;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import jakarta.persistence.*;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
@Entity
@Table(name = "tbl_recipe_step")
public class RecipeStep {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "recipe_step_pk")
private long recipeStepPk;

@Column(name = "recipe_step_order")
private int recipeStepOrder;

@Column(name = "recipe_step_content")
private String recipeStepContent;

@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JsonManagedReference
@JoinColumn(name = "recipe_step_source_pk")
private RecipeStepSource recipeStepSource;

@ManyToOne
@JoinColumn(name = "recipe_pk")
@JsonBackReference
private Recipe recipe;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package moja.refrigerator.aggregate.recipe;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Entity
@Table(name="tbl_recipe_step_source")
public class RecipeStepSource {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "recipe_step_source_pk")
private long recipeStepSourcePk;

@Column(name = "recipe_step_source_save") // 저장위치
private String recipeStepSourceSave;

@Column(name = "recipe_step_source_create_time")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd", timezone = "Asia/Seoul")
private LocalDateTime recipeStepSourceCreateTime = LocalDateTime.now();

@Column(name = "recipe_step_source_file_name",nullable = false) // 저장 파일 명
private String recipeStepSourceFileName;

@Column(name = "recipe_step_source_servername") // 서버 저장한 이름 추가.
private String recipeStepSourceServername;

@JoinColumn(name = "recipe_step_source_type") // 자료타입 동영상 or 사진
@ManyToOne
private RecipeSourceType recipeStepSourceType;

@JsonBackReference
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="recipe_step_pk")
private RecipeStep recipeStep;
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ public class Follow {
@Column(name = "follow_pk")
private long followPk;

@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "follower")
private User follower;

@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "following")
private User following;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.hibernate.annotations.CreationTimestamp;

import java.time.LocalDate;
import java.util.List;

@Entity
@Table(name = "tbl_user")
Expand Down Expand Up @@ -33,4 +34,10 @@ public class User {

@Column(name = "user_role")
private String userRole = "ROLE_USER";

@OneToMany(mappedBy = "follower", cascade = CascadeType.REMOVE)
private List<Follow> following;

@OneToMany(mappedBy = "following", cascade = CascadeType.REMOVE)
private List<Follow> followers;
}
18 changes: 18 additions & 0 deletions refrigerator/src/main/java/moja/refrigerator/config/WebConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package moja.refrigerator.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:5173")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(3600);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@ public RecipeController(RecipeService recipeService) {
}

@PostMapping
public void createRecipe(
public Recipe createRecipe(
@RequestPart RecipeCreateRequest request
, @RequestPart (required =false) List<MultipartFile> files
,@RequestPart (name="recipeSources",required =false) List<MultipartFile> recipeSources
,@RequestPart (name="recipeStepSources",required =false) List<MultipartFile> recipeStepSources
){
recipeService.createRecipe(request
, files

return recipeService.createRecipe(request
, recipeSources
, recipeStepSources
);
}

Expand All @@ -50,11 +53,12 @@ public void deleteRecipe(@RequestParam long recipePk){
}

@PutMapping
public void updateRecipe(
public Recipe updateRecipe(
@RequestPart RecipeUpdateRequest request
,@RequestPart (required =false) List<MultipartFile> files
,@RequestPart (name="recipeSources",required =false) List<MultipartFile> recipeSources
,@RequestPart (name="recipeStepSources",required =false) List<MultipartFile> recipeStepSources
){
recipeService.updateRecipe(request,files);
return recipeService.updateRecipe(request,recipeSources,recipeStepSources);
}

@GetMapping("/recommend")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package moja.refrigerator.controller.user;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import moja.refrigerator.dto.user.request.PasswordResetRequest;
import moja.refrigerator.dto.user.request.PasswordUpdateRequest;
import moja.refrigerator.dto.user.request.UserCreateRequest;
Expand Down Expand Up @@ -60,4 +62,11 @@ public ResponseEntity<?> toggleFollow(@PathVariable Long userPk) {
followService.toggleFollow(userPk);
return ResponseEntity.ok().body("팔로우 상태가 변경되었습니다.");
}

// 회원 탈퇴
@PostMapping("/delete")
public ResponseEntity<?> delete(HttpServletRequest request, HttpServletResponse response) {
userService.deleteUser(request, response);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ public class IngredientResponse {
private long remainExpirationDate;
private int seasonDate;
private String ingredientStorage;
private long ingredientManagementPk;
private boolean isBookmarked;
private String ingredientCategory;
private long ingredientBookmarkPk;

// ModelMapper 를 위한 기본 생성자 생성
public IngredientResponse() {}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
package moja.refrigerator.dto.recipe.request;

import lombok.Data;
import moja.refrigerator.aggregate.recipe.RecipeCategory;
import moja.refrigerator.aggregate.recipe.RecipeSource;
import moja.refrigerator.aggregate.user.User;
import moja.refrigerator.aggregate.recipe.RecipeStep;

import java.util.List;

@Data
public class RecipeCreateRequest {
private String recipeName;
private int recipeCookingTime;
private int recipeDifficulty;
private String recipeContent;
// private long recipeSource;
private int recipeCategoryPk;
private List<RecipeStepRequest> recipeSteps;
private long userPk;

// private long recipePk; // 자동 추가
// private String recipeCreateTime; //자동 추가
// private String recipeUpdateTime; //자동 추가
// private long recipeViews; // 조회 시 올리는 것으로
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package moja.refrigerator.dto.recipe.request;

import lombok.Data;

@Data
public class RecipeStepRequest {
private int recipeStepOrder; // JSON에 있는 필드와 이름 동일해야 함
private String recipeStepContent; // JSON의 recipeStepContent와 일치
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package moja.refrigerator.dto.recipe.request;

import lombok.Data;
import moja.refrigerator.aggregate.recipe.RecipeSourceType;

import java.time.LocalDateTime;

@Data
public class RecipeStepSourceRequest {
private long recipeStepSourcePk;
private String recipeStepSourceSave;
private LocalDateTime recipeStepSourceCreateTime;
private String recipeStepSourceFileName;
private String recipeStepSourceServername;
private RecipeSourceType recipeStepSourceType;


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package moja.refrigerator.dto.recipe.request;

import lombok.Data;

@Data
public class RecipeStepUpdateRequest {
private Long recipeStepPk;
private int recipeStepOrder; // JSON에 있는 필드와 이름 동일해야 함
private String recipeStepContent; // JSON의 recipeStepContent와 일치
private RecipeStepSourceRequest recipeStepSource;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

import lombok.Data;

import java.util.List;

@Data
public class RecipeUpdateRequest {
private long recipePk;
Expand All @@ -13,5 +15,6 @@ public class RecipeUpdateRequest {
private String recipeSource;
private String recipeCategory;
private String userPk;
private List<RecipeStepUpdateRequest> recipeSteps;

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import java.util.List;

import lombok.Data;
import moja.refrigerator.aggregate.recipe.RecipeSource;
import moja.refrigerator.dto.ingredient.response.IngredientResponse;

@Data
Expand All @@ -17,9 +18,10 @@ public class RecipeDetailResponse {
private LocalDateTime recipeCreateTime;;
private LocalDateTime recipeUpdateTime;

private String recipeSource;
private List<RecipeSource> recipeSource;
private String userPk;
private String recipeCategory;

private List<IngredientResponse> ingredients;
private List<RecipeStepResponse> recipeStep;
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@ public class RecipeRecommendResponse {
private long remainExpirationDays;
private String urgentIngredientName;
private List<RecipeIngredientInfo> ingredients;

private List<RecipeSourceInfo> mainImages; // 메인 이미지들
private List<RecipeStepWithImage> steps;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.Data;
import moja.refrigerator.aggregate.recipe.RecipeCategory;
import moja.refrigerator.aggregate.recipe.RecipeSource;
import moja.refrigerator.aggregate.recipe.RecipeStep;
import moja.refrigerator.aggregate.user.User;

import java.time.LocalDateTime;
Expand All @@ -22,6 +23,8 @@ public class RecipeResponse {
private LocalDateTime recipeUpdateTime;

private List<RecipeSource> recipeSource;

private List<RecipeStepResponse> recipeStep;
private User user;
private RecipeCategory recipeCategory;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package moja.refrigerator.dto.recipe.response;

import lombok.Data;

@Data
public class RecipeSourceInfo {
private String filePath;
private String originalName;
}
Loading