Merge remote-tracking branch 'origin/feature-frontend-ama' into feature-frontend-dishedit

feature-frontend-dishedit
masato.fujita 4 months ago
commit 138df3084a
  1. 115
      backend/src/main/java/com/example/todoapp/config/InitTables.java
  2. 3
      backend/src/main/java/com/example/todoapp/model/Recipes.java
  3. 19
      backend/src/main/java/com/example/todoapp/repository/RecipeStuffsRepository.java
  4. 10
      backend/src/main/java/com/example/todoapp/repository/RecipesRepository.java
  5. 37
      backend/src/main/java/com/example/todoapp/repository/RecipesStuffsRepository.java
  6. 4
      backend/src/main/java/com/example/todoapp/service/RecipeService.java

@ -50,83 +50,86 @@ public class InitTables {
stuffsRepository.deleteAll(); //データを残す場合はコメントアウト
if (stuffsRepository.count() > 0) {
return; // すでにデータが存在する場合は何もしない
// すでにデータが存在する場合は何もしない
} else {
setNewStuff(1L, "牛乳", null, "乳製品");
setNewStuff(2L, "ヨーグルト", null, "乳製品");
setNewStuff(3L, "チーズ", null, "乳製品");
setNewStuff(4L, "バター", null, "乳製品");
setNewStuff(5L, "生クリーム", null, "乳製品");
setNewStuff(6L, "鮭", null, "魚・肉");
setNewStuff(7L, "鶏むね肉", null, "魚・肉");
setNewStuff(8L, "豚バラ肉", null, "魚・肉");
setNewStuff(9L, "牛ひき肉", null, "魚・肉");
setNewStuff(10L, "まぐろ", null, "魚・肉");
setNewStuff(11L, "にんじん", null, "野菜");
setNewStuff(12L, "キャベツ", null, "野菜");
setNewStuff(13L, "ほうれん草", null, "野菜");
setNewStuff(14L, "玉ねぎ", null, "野菜");
setNewStuff(15L, "ピーマン", null, "野菜");
setNewStuff(16L, "じゃがいも", null, "野菜");
setNewStuff("牛乳", null, "乳製品");
setNewStuff("ヨーグルト", null, "乳製品");
setNewStuff("チーズ", null, "乳製品");
setNewStuff("バター", null, "乳製品");
setNewStuff("生クリーム", null, "乳製品");
setNewStuff("鮭", null, "魚・肉");
setNewStuff("鶏むね肉", null, "魚・肉");
setNewStuff("豚バラ肉", null, "魚・肉");
setNewStuff("牛ひき肉", null, "魚・肉");
setNewStuff("まぐろ", null, "魚・肉");
setNewStuff("にんじん", null, "野菜");
setNewStuff("キャベツ", null, "野菜");
setNewStuff("ほうれん草", null, "野菜");
setNewStuff("玉ねぎ", null, "野菜");
setNewStuff("ピーマン", null, "野菜");
setNewStuff("じゃがいも", null, "野菜");
setNewStuff(17L, "醤油", null, "調味料");
setNewStuff(18L, "味噌", null, "調味料");
setNewStuff(19L, "塩", null, "調味料");
setNewStuff(20L, "砂糖", null, "調味料");
setNewStuff(21L, "酢", null, "調味料");
setNewStuff(22L, "米", null, "その他");
setNewStuff(23L, "パスタ", null, "その他");
setNewStuff(24L, "小麦粉", null, "その他");
setNewStuff(25L, "卵", null, "その他");
setNewStuff(26L, "豆腐", null, "その他");
setNewStuff("醤油", null, "調味料");
setNewStuff("味噌", null, "調味料");
setNewStuff("塩", null, "調味料");
setNewStuff("砂糖", null, "調味料");
setNewStuff("酢", null, "調味料");
setNewStuff("米", null, "その他");
setNewStuff("パスタ", null, "その他");
setNewStuff("小麦粉", null, "その他");
setNewStuff("卵", null, "その他");
setNewStuff("豆腐", null, "その他");
}
if (stuffsRepository.count() > 0) {
return; // すでにデータが存在する場合は何もしない
if (recipeStuffsRepository.count() > 0) {
// すでにデータが存在する場合は何もしない
} else {
setNewRecipe(1L, "鮭のムニエル", "鮭を小麦粉で焼いた料理");
setNewRecipe(2L, "カレー", "野菜と肉を煮込んだカレー");
}
if (recipesRepository.count() > 0) {
return; // すでにデータが存在する場合は何もしない
} else {
setNewRecipeStuffs(1L, recipesRepository.findById(1L).orElse(null), 6L, 1); // 鮭
setNewRecipeStuffs(3L, recipesRepository.findById(1L).orElse(null), 17L, 10); // 醤油
setNewRecipeStuffs(2L, recipesRepository.findById(1L).orElse(null), 24L, 50); // 小麦粉
setNewRecipeStuffs(4L, recipesRepository.findById(2L).orElse(null), 11L, 1); // にんじん
setNewRecipeStuffs(5L, recipesRepository.findById(2L).orElse(null), 16L, 1); // じゃがいも
setNewRecipeStuffs(6L, recipesRepository.findById(2L).orElse(null), 9L, 100); // 牛ひき肉
Recipes recipe1 = new Recipes();
// recipe1.setRecipeId(1L);
recipe1.setRecipeName("鮭のムニエル");
recipe1.setSummary("鮭を小麦粉で焼いた料理");
recipesRepository.save(recipe1);
Recipes recipe2 = new Recipes();
recipe2.setRecipeName("カレー");
recipe2.setSummary("野菜と肉を煮込んだカレー");
recipesRepository.save(recipe2);
setNewRecipeStuffs(recipe1, stuffsRepository.findByStuffName("鮭").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: 鮭")), 1); // 鮭
setNewRecipeStuffs(recipe1, stuffsRepository.findByStuffName("小麦粉").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: 小麦粉")), 50); // 小麦粉
setNewRecipeStuffs(recipe1, stuffsRepository.findByStuffName("バター").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: バター")), 10); // バター
setNewRecipeStuffs(recipe2, stuffsRepository.findByStuffName("にんじん").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: にんじん")), 1); // にんじん
setNewRecipeStuffs(recipe2, stuffsRepository.findByStuffName("じゃがいも").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: じゃがいも")), 1); // じゃがいも
setNewRecipeStuffs(recipe2, stuffsRepository.findByStuffName("牛ひき肉").orElseThrow(() -> new IllegalArgumentException("Stuff not found for name: 牛ひき肉")), 100); // 牛ひき肉
}
}
private void setNewStuff(Long stuffId, String stuffName, String summary, String category) {
private void setNewStuff(String stuffName, String summary, String category) {
Stuffs stuff = new Stuffs();
stuff.setStuffId(stuffId);
stuff.setStuffName(stuffName);
stuff.setSummary(summary);
stuff.setCategory(category);
stuffsRepository.save(stuff);
}
private void setNewRecipe(Long recipeId, String recipeName, String summary) {
Recipes recipe = new Recipes();
recipe.setRecipeId(recipeId);
recipe.setRecipeName(recipeName);
recipe.setSummary(summary);
}
// private void setNewRecipe(Long recipeId, String recipeName, String summary) {
// Recipes recipe = new Recipes();
// recipe.setRecipeId(recipeId);
// recipe.setRecipeName(recipeName);
// recipe.setSummary(summary);
// recipesRepository.save(recipe);
// }
private void setNewRecipeStuffs(Long recipeStuffsId, Recipes recipe, Long stuffId, int amount) {
private void setNewRecipeStuffs(Recipes recipe, Stuffs stuff, int amount) {
RecipeStuffs recipeStuff = new RecipeStuffs();
recipeStuff.setRecipeStuffsId(recipeStuffsId);
recipeStuff.setRecipes(recipe);
recipeStuff.setRecipeStuffsId(stuffId);
recipeStuff.setStuff(stuff);
recipeStuff.setAmount(amount);
recipeStuffsRepository.save(recipeStuff);
}

@ -36,7 +36,7 @@ public class Recipes {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="recipeId")
private Long recipeId ;
private Long recipeId;
/**
* カテゴリ名
@ -51,4 +51,5 @@ public class Recipes {
@Column (columnDefinition = "TEXT")
private String summary;
}

@ -18,6 +18,7 @@ import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* 料理-材料エンティティのリポジトリインターフェース
@ -29,5 +30,21 @@ import java.util.List;
@Repository
public interface RecipeStuffsRepository extends JpaRepository<RecipeStuffs, Long> {
/**
* レシピIDで食材情報を検索する
*
* @param recipeId 検索するレシピID
* @return 関連する食材情報リスト
*/
List<RecipeStuffs> findByRecipesRecipeId(Long recipeId);
/**
* レシピIDと食材IDで関連情報を検索する
*
* @param recipeId 検索するレシピID
* @param stuffId 検索する食材ID
* @return 関連情報存在する場合
*/
Optional<RecipeStuffs> findByRecipesRecipeIdAndStuffStuffId(Long recipeId, Long stuffId);
}

@ -3,6 +3,7 @@ package com.example.todoapp.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.todoapp.model.Recipes;
import java.util.Optional;
/**
* レシピエンティティのリポジトリインターフェース
@ -11,4 +12,11 @@ import com.example.todoapp.model.Recipes;
* Spring Data JPAによって自動的に実装されます
* </p>
*/
public interface RecipesRepository extends JpaRepository<Recipes, Long> {}
public interface RecipesRepository extends JpaRepository<Recipes, Long> {
/**
* レシピIDでレシピを検索する
* @param recipeId
* @return Recipes オブジェクトのOptional
*/
Optional<Recipes> findByRecipeId(Long recipeId);
}

@ -1,37 +0,0 @@
package com.example.todoapp.repository;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.todoapp.model.RecipeStuffs;
/**
* レシピ食材関連データのリポジトリインターフェース
* <p>
* このインターフェースはレシピと食材の関連データへのアクセスを提供します
* Spring Data JPAによって自動的に実装されます
* </p>
*/
public interface RecipesStuffsRepository extends JpaRepository<RecipeStuffs, Long> {
/**
* レシピIDで食材情報を検索する
*
* @param recipeId 検索するレシピID
* @return 関連する食材情報リスト
*/
List<RecipeStuffs> findByRecipesRecipeId(Long recipeId);
/**
* レシピIDと食材IDで関連情報を検索する
*
* @param recipeId 検索するレシピID
* @param stuffId 検索する食材ID
* @return 関連情報存在する場合
*/
Optional<RecipeStuffs> findByRecipesRecipeIdAndStuffStuffId(Long recipeId, Long stuffId);
}

@ -24,7 +24,7 @@ import com.example.todoapp.dto.StuffRequestDTO;
import com.example.todoapp.model.RecipeStuffs;
import com.example.todoapp.model.Recipes;
import com.example.todoapp.model.Stuffs;
import com.example.todoapp.repository.RecipesStuffsRepository;
import com.example.todoapp.repository.RecipeStuffsRepository;
import com.example.todoapp.repository.RecipesRepository;
import com.example.todoapp.repository.StuffsRepository;
@ -47,7 +47,7 @@ public class RecipeService {
private StuffsRepository stuffsRepository;
@Autowired
private RecipesStuffsRepository recipeStuffsRepository;
private RecipeStuffsRepository recipeStuffsRepository;
/**
* レシピを新規登録する

Loading…
Cancel
Save