From 5dfaa3719a02969feebb57d16728e8d958c02baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=AA=85=EC=9A=B0?= Date: Mon, 25 Sep 2023 15:55:26 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=AA=A8=EB=8D=B8=EB=AA=85=20-=20v?= =?UTF-8?q?isionAPI=20=EC=9D=B8=EC=8B=9D=EB=AA=85=20=EB=B6=84=EB=A6=AC=20[?= =?UTF-8?q?BACK-302]=20Resolves=20:=20issue=20#302?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../google/service/VisionDetectingService.java | 2 +- .../domain/item/item/api/SubjectItemApi.java | 6 ++++-- .../item/application/SubjectItemCreateService.java | 12 +++++++----- .../domain/item/subject/domain/Subject.java | 6 +++++- .../domain/pix2pix/domain/Pix2Pix.java | 14 +++++++++++++- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/siliconvalley/domain/google/service/VisionDetectingService.java b/src/main/java/com/siliconvalley/domain/google/service/VisionDetectingService.java index 7d3852f..b5e88e1 100644 --- a/src/main/java/com/siliconvalley/domain/google/service/VisionDetectingService.java +++ b/src/main/java/com/siliconvalley/domain/google/service/VisionDetectingService.java @@ -22,7 +22,7 @@ public class VisionDetectingService { public Score calculateCanvasScore(Long canvasId) { Canvas canvas = canvasFindDao.findById(canvasId); Map detectResult = visionService.detectObjects(canvas.getCanvas()); - Float detectionScore = detectResult.get(canvas.getSubject().getPix2Pix().getModelName()); + Float detectionScore = detectResult.get(canvas.getSubject().getPix2Pix().getVisionName()); return Score.determineScore(detectionScore); } diff --git a/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java b/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java index 18545a9..6ecee00 100644 --- a/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java +++ b/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java @@ -34,10 +34,12 @@ public class SubjectItemApi { public ResponseEntity createSubjectItem( @RequestParam("subjectImage") MultipartFile subjectImage, @RequestParam("itemPrice") Long itemPrice, - @RequestParam("subjectName") String subjectName + @RequestParam("subjectName") String subjectName, + @RequestParam("modelName") String modelName, + @RequestParam("visionName") String visionName ) throws IOException { String subjectImgUrl = s3ImageUploadService.uploadFile(subjectImage, s3PathBuildService.buildPathForItem("subject")); - return ResponseEntity.status(HttpStatus.CREATED).body(subjectItemCreateService.createSubjectItem(itemPrice, subjectName, subjectImgUrl)); + return ResponseEntity.status(HttpStatus.CREATED).body(subjectItemCreateService.createSubjectItem(itemPrice, subjectName, subjectImgUrl, modelName, visionName)); } @GetMapping diff --git a/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java b/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java index dc708ed..626a072 100644 --- a/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java +++ b/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java @@ -7,27 +7,29 @@ import com.siliconvalley.domain.item.subject.domain.Subject; import com.siliconvalley.domain.notification.application.NotificationPushService; import com.siliconvalley.domain.notification.domain.NotificationType; +import com.siliconvalley.domain.pix2pix.dao.Pix2PixRepository; +import com.siliconvalley.domain.pix2pix.domain.Pix2Pix; import com.siliconvalley.global.common.dto.Response; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.io.IOException; - @Service @Transactional @RequiredArgsConstructor public class SubjectItemCreateService { private final ItemRepository itemRepository; + private final Pix2PixRepository pix2PixRepository; private final NotificationPushService notificationPushService; - public Response createSubjectItem(Long itemPrice, String subjectName, String subjectImgUrl) { + public Response createSubjectItem(Long itemPrice, String subjectName, String subjectImgUrl, String modelName, String visionName) { Item item = Item.toEntity(itemPrice); - + Subject subject = Subject.toEntity(subjectName, subjectImgUrl, item); // Item과 Subject빌드 및 연관관계 매핑 - item.addSubject(Subject.toEntity(subjectName, subjectImgUrl, item)); + subject.setPix2Pix(Pix2Pix.toEntity(subject, modelName, visionName)); + item.addSubject(subject); // Item이 저장될 때 Subject 자동 저장 itemRepository.save(item); diff --git a/src/main/java/com/siliconvalley/domain/item/subject/domain/Subject.java b/src/main/java/com/siliconvalley/domain/item/subject/domain/Subject.java index 484a7c2..cb0bd96 100644 --- a/src/main/java/com/siliconvalley/domain/item/subject/domain/Subject.java +++ b/src/main/java/com/siliconvalley/domain/item/subject/domain/Subject.java @@ -41,10 +41,11 @@ public class Subject { private Pix2Pix pix2Pix; @Builder - public Subject(String subjectName, String subjectImage, Item item) { + public Subject(String subjectName, String subjectImage, Item item, Pix2Pix pix2Pix) { this.subjectName = subjectName; this.subjectImage = subjectImage; this.item = item; + this.pix2Pix = pix2Pix; } @@ -56,6 +57,9 @@ public static Subject toEntity(String subjectName, String sketchImageUrl, Item i .build(); } + public void setPix2Pix(Pix2Pix pix2Pix){ + this.pix2Pix = pix2Pix; + } public void setItem(Item item) { this.item = item; } diff --git a/src/main/java/com/siliconvalley/domain/pix2pix/domain/Pix2Pix.java b/src/main/java/com/siliconvalley/domain/pix2pix/domain/Pix2Pix.java index 4f6c782..8bcec51 100644 --- a/src/main/java/com/siliconvalley/domain/pix2pix/domain/Pix2Pix.java +++ b/src/main/java/com/siliconvalley/domain/pix2pix/domain/Pix2Pix.java @@ -21,14 +21,26 @@ public class Pix2Pix { @Column(name = "model_name") private String modelName; + @Column(name = "vision_name") + private String visionName; + @OneToOne @JoinColumn(name = "subject_id") private Subject subject; @Builder - public Pix2Pix(String modelName, Subject subject){ + public Pix2Pix(String modelName, String visionName, Subject subject){ this.modelName = modelName; + this.visionName = visionName; this.subject = subject; } + public static Pix2Pix toEntity(Subject subject, String modelName, String visionName){ + return Pix2Pix.builder() + .modelName(modelName) + .visionName(visionName) + .subject(subject) + .build(); + } + } From c265de3eadda67651245fac8ab3031001f88e085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=AA=85=EC=9A=B0?= Date: Tue, 26 Sep 2023 09:35:53 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20Pix2Pix=20=EA=B0=9D=EC=B2=B4=20?= =?UTF-8?q?=EC=97=B0=EA=B4=80=EA=B4=80=EA=B3=84=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/siliconvalley/domain/item/item/api/SubjectItemApi.java | 2 -- .../domain/item/item/application/SubjectItemCreateService.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java b/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java index 6ecee00..25287b3 100644 --- a/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java +++ b/src/main/java/com/siliconvalley/domain/item/item/api/SubjectItemApi.java @@ -3,7 +3,6 @@ import com.siliconvalley.domain.image.service.S3ImageUploadService; import com.siliconvalley.domain.image.service.S3PathBuildService; import com.siliconvalley.domain.item.item.dao.SubjectItemFindDao; -import com.siliconvalley.domain.item.item.dto.SubjectItemCreateRequest; import com.siliconvalley.domain.item.item.application.SubjectItemCreateService; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; @@ -12,7 +11,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import javax.validation.Valid; import java.io.IOException; @RestController diff --git a/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java b/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java index 626a072..177b8eb 100644 --- a/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java +++ b/src/main/java/com/siliconvalley/domain/item/item/application/SubjectItemCreateService.java @@ -7,7 +7,6 @@ import com.siliconvalley.domain.item.subject.domain.Subject; import com.siliconvalley.domain.notification.application.NotificationPushService; import com.siliconvalley.domain.notification.domain.NotificationType; -import com.siliconvalley.domain.pix2pix.dao.Pix2PixRepository; import com.siliconvalley.domain.pix2pix.domain.Pix2Pix; import com.siliconvalley.global.common.dto.Response; import lombok.RequiredArgsConstructor; @@ -20,7 +19,6 @@ public class SubjectItemCreateService { private final ItemRepository itemRepository; - private final Pix2PixRepository pix2PixRepository; private final NotificationPushService notificationPushService; public Response createSubjectItem(Long itemPrice, String subjectName, String subjectImgUrl, String modelName, String visionName) {