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
6 changes: 2 additions & 4 deletions refrigerator/.idea/dataSources.xml

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
@@ -1,8 +1,13 @@
package moja.refrigerator.aggregate.recipe;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.*;
import lombok.Data;
import moja.refrigerator.aggregate.user.User;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import java.time.LocalDateTime;

@Data
@Entity
Expand All @@ -20,23 +25,28 @@ public class Recipe {
@Column(name = "recipe_cooking_time")
private int recipeCookingTime;


@CreationTimestamp
@Column(name = "recipe_create_time")
private String recipeCreateTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd", timezone = "Asia/Seoul")
private LocalDateTime recipeCreateTime;

@UpdateTimestamp
@Column(name = "recipe_update_time")
private String recipeUpdateTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd", timezone = "Asia/Seoul")
private LocalDateTime recipeUpdateTime;

@Column(name = "recipe_difficulty")
private int recipeDifficulty;

@Column(name = "recipe_views")
private long recipeViews;
private long recipeViews = 0;

@JoinColumn(name = "user")
@ManyToOne
private User user;

@JoinColumn(name = "cooking_source")
@JoinColumn(name = "recipe_source")
@ManyToOne
private RecipeSource recipeSource;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,29 @@
import jakarta.persistence.*;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Entity
@Table(name="tbl_recipe_source")
public class RecipeSource {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cooking_source_pk")
private long cookingSourcePk;
@Column(name = "recipe_source_pk")
private long recipeSourcePk;

@Column(name = "cooking_source_save")
private String cookingSourceSave;
@Column(name = "recipe_source_save")
private String recipeSourceSave;

@Column(name = "cooking_source_create_time")
private String cookingSourceCreateTime;
@Column(name = "recipe_source_create_time")
private String recipeSourceCreateTime = LocalDateTime.now().toString();

@Column(name = "cooking_source_file_name")
private String cookingSourceFileName;
@Column(name = "recipe_source_file_name")
private String recipeSourceFileName;

@JoinColumn(name = "cooking_source_type")
@JoinColumn(name = "recipe_source_type")
@OneToOne
private RecipeSourceType cookingSourceType;
private RecipeSourceType recipeSourceType;

}

Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
public class RecipeSourceType {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cooking_source_type_pk")
private int cookingSourceTypePk;
@Column(name = "recipe_source_type_pk")
private int recipeSourceTypePk;

@Column(name = "cooking_source_type",length = 50)
private String cookingSourceType;
@Column(name = "recipe_source_type",length = 50)
private String recipeSourceType;
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package moja.refrigerator.controller.recipe;

import moja.refrigerator.aggregate.recipe.Recipe;
import moja.refrigerator.dto.recipe.request.RecipeCreateRequest;
import moja.refrigerator.dto.recipe.response.RecipeResponse;
import moja.refrigerator.service.recipe.RecipeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/recipe")
Expand All @@ -14,4 +18,14 @@ public class RecipeController {
public RecipeController(RecipeService recipeService) {
this.recipeService = recipeService;
}

@PostMapping
public void createRecipe(@RequestBody RecipeCreateRequest request){
recipeService.createRecipe(request);
}

@GetMapping
public List<RecipeResponse> getAllRecipes(){
return recipeService.getAllRecipes();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
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;

@Data
public class RecipeCreateRequest {
private String recipeName;
private int recipeCookingTime;
private int recipeDifficulty;

private String recipeSource;
private String recipeCategory;
private String 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,15 @@
package moja.refrigerator.dto.recipe.request;

import jakarta.persistence.*;
import lombok.Data;
import moja.refrigerator.aggregate.recipe.RecipeSourceType;

@Data
public class RecipeSourceCreateRequest {
private String recipeSourceFileName;
private String recipeSourceSave;
private RecipeSourceType recipeSourceType;

// private long recipeSourcePk;
// private String recipeSourceCreateTime;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package moja.refrigerator.dto.recipe.response;

import lombok.Data;

import java.time.LocalDateTime;

@Data
public class RecipeResponse {

private long recipePk;
private String recipeName;
private int recipeCookingTime;
private int recipeDifficulty;
private long recipeViews;

private LocalDateTime recipeCreateTime;;
private LocalDateTime recipeUpdateTime;

private String recipeSource;
private String userPk;
private String recipeCategory;

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

import moja.refrigerator.aggregate.recipe.RecipeCategory;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface RecipeCategoryRepositoy extends JpaRepository<RecipeCategory,Integer> {

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import moja.refrigerator.aggregate.recipe.Recipe;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface RecipeRepository extends JpaRepository<Recipe, Long> {
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package moja.refrigerator.repository.recipe;

import moja.refrigerator.aggregate.recipe.RecipeSource;
import org.springframework.data.jpa.repository.JpaRepository;

public interface RecipeSourceRepository extends JpaRepository<RecipeSource,Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package moja.refrigerator.repository.user;

import moja.refrigerator.aggregate.user.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long>{
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
package moja.refrigerator.service.recipe;

import moja.refrigerator.aggregate.recipe.Recipe;
import moja.refrigerator.dto.recipe.request.RecipeCreateRequest;
import moja.refrigerator.dto.recipe.response.RecipeResponse;
import moja.refrigerator.repository.recipe.RecipeRepository;
import org.springframework.stereotype.Service;

import java.util.List;

public interface RecipeService {
void createRecipe(RecipeCreateRequest request);
List<RecipeResponse> getAllRecipes();
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,76 @@
package moja.refrigerator.service.recipe;


import moja.refrigerator.aggregate.recipe.Recipe;
import moja.refrigerator.aggregate.recipe.RecipeCategory;
import moja.refrigerator.aggregate.recipe.RecipeSource;
import moja.refrigerator.dto.recipe.request.RecipeCreateRequest;
import moja.refrigerator.dto.recipe.response.RecipeResponse;
import moja.refrigerator.repository.recipe.RecipeCategoryRepositoy;
import moja.refrigerator.repository.recipe.RecipeRepository;
import moja.refrigerator.repository.recipe.RecipeSourceRepository;
import moja.refrigerator.repository.user.UserRepository;
import org.modelmapper.ModelMapper;
import org.modelmapper.PropertyMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

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

@Service
public class RecipeServiceImpl implements RecipeService {

private RecipeRepository recipeRepository;
private UserRepository userRepository;
private RecipeSourceRepository recipeSourceRepository;
private RecipeCategoryRepositoy recipeCategoryRepositoy;
private ModelMapper mapper;

@Autowired
public RecipeServiceImpl(RecipeRepository recipeRepository, ModelMapper mapper) {
public RecipeServiceImpl(
RecipeRepository recipeRepository,
ModelMapper mapper,
RecipeSourceRepository recipeSourceRepository,
UserRepository userRepository,
RecipeCategoryRepositoy recipeCategoryRepositoy
) {
this.recipeRepository = recipeRepository;
this.mapper = mapper;
this.recipeSourceRepository = recipeSourceRepository;
this.userRepository = userRepository;
this.recipeCategoryRepositoy = recipeCategoryRepositoy;
}

@Override
@Transactional
public void createRecipe(RecipeCreateRequest request) {

Recipe recipe = mapper.map(request, Recipe.class);

// //User 조회
// User user = userRepository.findById(request.getUserId)
// .orElseThrow(IllegalArgumentException::new);
// recipe.setUserPk(user);

// //RecipeSource 조회
// RecipeSource recipeSource = recipeSourceRepository.findById(request.getRecipeSource())
// .orElseThrow(IllegalArgumentException::new);
// recipe.setRecipeSource(recipeSource);

//RecipeCategory
// RecipeCategory recipeCategory = .findById(request.getRecipeCategory())
// .orElseThrow(IllegalArgumentException::new);
// recipe.setRecipeCategory(recipeCategory);

recipeRepository.save(recipe);
}

@Override
public List<RecipeResponse> getAllRecipes(){
return recipeRepository.findAll().stream()
.map(recipe -> mapper.map(recipe, RecipeResponse.class))
.collect(Collectors.toList());
};
}