食材を実装しました

dev-backend-stuffs
zhang.pengcheng 5 months ago
parent e40755598f
commit 9d24a254f2
  1. 45
      backend/src/main/java/com/example/todoapp/controller/StuffsController.java
  2. 19
      backend/src/main/java/com/example/todoapp/dto/StuffDetailDTO.java
  3. 34
      backend/src/main/java/com/example/todoapp/dto/StuffRequestDTO.java
  4. 21
      backend/src/main/java/com/example/todoapp/repository/StuffsRepository.java
  5. 53
      backend/src/main/java/com/example/todoapp/service/StuffsService.java

@ -0,0 +1,45 @@
package com.example.todoapp.controller;
import com.example.todoapp.dto.StuffRequestDTO;
import com.example.todoapp.model.Stuffs;
import com.example.todoapp.service.StuffsService;
import java.util.Collections;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/stuffs")
public class StuffsController {
@Autowired
private StuffsService stuffsService;
@PostMapping("/add")
public ResponseEntity<?> createStuffs(@RequestBody StuffRequestDTO requestDTO) {
try {
Stuffs newStuffs = stuffsService.createStuffs(requestDTO);
return ResponseEntity.ok(newStuffs);
} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body(Collections.singletonMap("error", e.getMessage()));
}
}
@PostMapping("/get")
public ResponseEntity<?> getStuffs(@RequestBody StuffRequestDTO requestDTO) {
try {
Long stuffId = requestDTO.getStuffs().getStuff_id();
Stuffs stuff = stuffsService.getStuff(stuffId);
return ResponseEntity.ok(stuff);
} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body(Collections.singletonMap("error", e.getMessage()));
}
}
}

@ -0,0 +1,19 @@
package com.example.todoapp.dto;
import com.example.todoapp.model.Stuffs;
import lombok.Data;
@Data
public class StuffDetailDTO {
private Long stuff_id;
private String stuff_name;
private String summary;
private String category;
public StuffDetailDTO(Stuffs stuff) {
this.stuff_id = stuff.getStuff_id();
this.stuff_name = stuff.getStuff_name();
this.summary = stuff.getSummary();
this.category = stuff.getCategory();
}
}

@ -0,0 +1,34 @@
package com.example.todoapp.dto;
import com.example.todoapp.dto.StuffRequestDTO.StuffDTO;
import com.example.todoapp.dto.StuffRequestDTO.StuffIdentifier;
import lombok.Data;
/**
* タスクエンティティのリポジトリインターフェース
* <p>
* このインターフェースはタスクデータへのアクセスと操作を提供します
* Spring Data JPAによって自動的に実装されます
* </p>
*/
@Data
public class StuffRequestDTO {
@Data
public static class StuffDTO {
private Long stuff_id;
private String stuff_name;
private String summary;
private String category;
}
@Data
public static class StuffIdentifier {
private Long stuff_id;
}
private StuffDTO stuff;
private StuffIdentifier stuffs;
}

@ -0,0 +1,21 @@
package com.example.todoapp.repository;
import com.example.todoapp.model.Stuffs;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* タスクエンティティのリポジトリインターフェース
* <p>
* このインターフェースはタスクデータへのアクセスと操作を提供します
* Spring Data JPAによって自動的に実装されます
* </p>
*/
@Repository
public interface StuffsRepository extends JpaRepository<Stuffs, Long> {
Optional<Stuffs> findById(Long stuff_id);
}

@ -0,0 +1,53 @@
package com.example.todoapp.service;
import com.example.todoapp.dto.StuffRequestDTO;
import com.example.todoapp.model.Stuffs;
import com.example.todoapp.repository.StuffsRepository;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 認証機能のサービスクラス
* <p>
* このクラスはユーザー登録とログイン処理のビジネスロジックを提供します
* 認証に成功した場合JWTトークンを発行します
* </p>
*/
@Service
public class StuffsService {
@Autowired
private StuffsRepository stuffsRepository;
@Transactional
public Stuffs createStuffs(StuffRequestDTO requestDTO) {
Stuffs stuffs = new Stuffs();
stuffs.setStuff_name(requestDTO.getStuff().getStuff_name());
stuffs.setSummary(requestDTO.getStuff().getSummary());
stuffs.setCategory(requestDTO.getStuff().getCategory());
return stuffsRepository.save(stuffs);
}
@Transactional
public void deteleStuffs(Long stuffId) {
stuffsRepository.deleteById(stuffId);
}
// 查询食材方法(移除用户验证)
@Transactional(readOnly = true)
public Stuffs getStuff(Long stuffId) {
Optional<Stuffs> stuffOpt = stuffsRepository.findById(stuffId);
if (stuffOpt.isPresent()) {
return stuffOpt.get();
} else {
throw new RuntimeException("no: " + stuffId);
}
}
}
Loading…
Cancel
Save