diff --git a/owner-vue/src/main.js b/owner-vue/src/main.js
index 79288dd..76b1f26 100644
--- a/owner-vue/src/main.js
+++ b/owner-vue/src/main.js
@@ -1,4 +1,3 @@
-import 'font-awesome/css/font-awesome.min.css' // Ensure you are using css-loader
import Vue from 'vue'
import App from './App.vue'
import vuetify from './plugins/vuetify'
@@ -6,11 +5,11 @@ import router from './router'
import axios from "axios";
Vue.config.productionTip = false
+Vue.prototype.$axios = axios;
new Vue({
vuetify,
router,
render: h => h(App)
}).$mount('#app')
-Vue.component('axios',axios)
diff --git a/owner-vue/src/views/Category.vue b/owner-vue/src/views/Category.vue
index 6023641..7f6900d 100644
--- a/owner-vue/src/views/Category.vue
+++ b/owner-vue/src/views/Category.vue
@@ -60,7 +60,6 @@ import {
mdiContentSave, mdiDelete,
mdiPlus,
} from '@mdi/js'
-import axios from "axios";
export default {
name: "Category",
@@ -115,7 +114,7 @@ export default {
}
data.categoryList.push(category)
})
- axios({
+ this.$axios({
method:'put',
url:'/store-service/category',
headers: {
@@ -134,7 +133,7 @@ export default {
},
getCategoryList:function(){
var vm =this;
- axios({
+ this.$axios({
method:'get',
url:'/store-service/category',
responseType:'json'
diff --git a/owner-vue/src/views/Menu.vue b/owner-vue/src/views/Menu.vue
index 52db3d3..16ca0f1 100644
--- a/owner-vue/src/views/Menu.vue
+++ b/owner-vue/src/views/Menu.vue
@@ -2,6 +2,14 @@
메뉴 관리
+
+
@@ -28,6 +36,18 @@
hide-default-footer
class="elevation-1"
>
+
+
+
+
+
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/item/dto/ItemDto.java b/store-service/src/main/java/com/justpickup/storeservice/domain/item/dto/ItemDto.java
index 2dc323e..f5ed01a 100644
--- a/store-service/src/main/java/com/justpickup/storeservice/domain/item/dto/ItemDto.java
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/item/dto/ItemDto.java
@@ -2,12 +2,16 @@ package com.justpickup.storeservice.domain.item.dto;
import com.justpickup.storeservice.domain.category.dto.CategoryDto;
import com.justpickup.storeservice.domain.item.entity.Item;
+import com.justpickup.storeservice.domain.itemoption.dto.ItemOptionDto;
import com.justpickup.storeservice.global.entity.Yn;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
+import java.util.List;
+import java.util.stream.Collectors;
+
@Getter
@NoArgsConstructor
@AllArgsConstructor
@@ -24,10 +28,11 @@ public class ItemDto {
private CategoryDto categoryDto;
+ private List itemOptions;
+
/*
private PhotoDto photoDto;
private StoreDto storeDto;
- private List itemOptionDtoList;
*/
// == 생성 메소드 == //
@@ -57,6 +62,19 @@ public class ItemDto {
.build();
}
+ public static ItemDto createWithCategoryItemDtoAndItemOption(Item item) {
+ return ItemDto.builder()
+ .id(item.getId())
+ .name(item.getName())
+ .categoryDto(new CategoryDto(item.getCategory()))
+ .price(item.getPrice())
+ .salesYn(item.getSalesYn())
+ .itemOptions(item.getItemOptions()
+ .stream().map(ItemOptionDto::new)
+ .collect(Collectors.toList()))
+ .build();
+ }
+
// TODO: 2022/02/03 queryDsl 쿼리 생성 시 구현 필요
// public static ItemDto createFullItemDto(Item item) {
// return null
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java b/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java
index fe9a422..78d2ebd 100644
--- a/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/item/service/ItemServiceImpl.java
@@ -1,24 +1,19 @@
package com.justpickup.storeservice.domain.item.service;
-import com.justpickup.storeservice.domain.category.exception.NotFoundStoreException;
import com.justpickup.storeservice.domain.item.dto.ItemDto;
-import com.justpickup.storeservice.domain.item.dto.ItemSearch;
import com.justpickup.storeservice.domain.item.entity.Item;
import com.justpickup.storeservice.domain.item.exception.NotExistItemException;
import com.justpickup.storeservice.domain.item.repository.ItemRepository;
import com.justpickup.storeservice.domain.item.repository.ItemRepositoryCustom;
-import com.justpickup.storeservice.domain.store.entity.Store;
import com.justpickup.storeservice.domain.store.repository.StoreRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.support.PageableExecutionUtils;
-import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.List;
import java.util.stream.Collectors;
@Service
@@ -37,7 +32,7 @@ public class ItemServiceImpl implements ItemService {
Item findItem = itemRepository.findById(itemId)
.orElseThrow(() -> new NotExistItemException("존재하지 않는 아이템 입니다."));
- return ItemDto.createItemDto(findItem);
+ return ItemDto.createWithCategoryItemDtoAndItemOption(findItem);
}
@Override
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java b/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java
index e11698a..568af7d 100644
--- a/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/item/web/ItemController.java
@@ -4,6 +4,9 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.justpickup.storeservice.domain.item.dto.ItemDto;
import com.justpickup.storeservice.domain.item.service.ItemService;
+import com.justpickup.storeservice.domain.itemoption.dto.ItemOptionDto;
+import com.justpickup.storeservice.domain.itemoption.entity.ItemOption;
+import com.justpickup.storeservice.domain.itemoption.entity.OptionType;
import com.justpickup.storeservice.global.dto.Result;
import com.justpickup.storeservice.global.entity.Yn;
import lombok.AllArgsConstructor;
@@ -83,8 +86,6 @@ public class ItemController {
int startPage;
int totalPage;
}
-
-
}
@@ -103,12 +104,37 @@ public class ItemController {
private String name;
private Yn salesYn;
private Long price;
+ private String CategoryName;
+ private List itemOptions;
public GetItemResponse(ItemDto itemDto) {
this.id = itemDto.getId();
this.name = itemDto.getName();
this.salesYn = itemDto.getSalesYn();
this.price = itemDto.getPrice();
+ this.CategoryName = itemDto.getCategoryDto().getName();
+ this.itemOptions = itemDto.getItemOptions()
+ .stream().map(ItemOptionResponse::new)
+ .collect(Collectors.toList());
+ }
+
+ @Data
+ static class ItemOptionResponse{
+ private Long id;
+
+ private OptionType optionType;
+
+ private Long price;
+
+ private String name;
+
+ public ItemOptionResponse(ItemOptionDto itemOptionDto) {
+
+ this.id = itemOptionDto.getId();
+ this.optionType = itemOptionDto.getOptionType();
+ this.price = itemOptionDto.getPrice();
+ this.name = itemOptionDto.getName();
+ }
}
}
}
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/dto/ItemOptionDto.java b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/dto/ItemOptionDto.java
new file mode 100644
index 0000000..e7ee14a
--- /dev/null
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/dto/ItemOptionDto.java
@@ -0,0 +1,32 @@
+package com.justpickup.storeservice.domain.itemoption.dto;
+
+import com.justpickup.storeservice.domain.itemoption.entity.ItemOption;
+import com.justpickup.storeservice.domain.itemoption.entity.OptionType;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ItemOptionDto {
+
+ private Long id;
+
+ private OptionType optionType;
+
+ private Long price;
+
+ private String name;
+
+ public ItemOptionDto (ItemOption itemOption){
+ this.id = itemOption.getId();
+ this.optionType = itemOption.getOptionType();
+ this.price = itemOption.getPrice();
+ this.name = itemOption.getName();
+ }
+}
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/repository/ItemOptionRepository.java b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/repository/ItemOptionRepository.java
new file mode 100644
index 0000000..8b09e14
--- /dev/null
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/repository/ItemOptionRepository.java
@@ -0,0 +1,12 @@
+package com.justpickup.storeservice.domain.itemoption.repository;
+
+import com.justpickup.storeservice.domain.item.entity.Item;
+import com.justpickup.storeservice.domain.itemoption.entity.ItemOption;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+public interface ItemOptionRepository extends JpaRepository {
+
+}
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/repository/ItemOptionRepositoryCustom.java b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/repository/ItemOptionRepositoryCustom.java
new file mode 100644
index 0000000..3cc1316
--- /dev/null
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/repository/ItemOptionRepositoryCustom.java
@@ -0,0 +1,27 @@
+package com.justpickup.storeservice.domain.itemoption.repository;
+
+import com.justpickup.storeservice.domain.item.entity.Item;
+import com.justpickup.storeservice.domain.item.entity.QItem;
+import com.justpickup.storeservice.domain.itemoption.entity.ItemOption;
+import com.justpickup.storeservice.domain.itemoption.entity.QItemOption;
+import com.querydsl.jpa.impl.JPAQueryFactory;
+import lombok.RequiredArgsConstructor;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+@RequiredArgsConstructor
+public class ItemOptionRepositoryCustom {
+
+ private final JPAQueryFactory queryFactory;
+
+ public List findByItem(Long itemId) {
+
+ return queryFactory.selectFrom(QItemOption.itemOption)
+ .join(QItemOption.itemOption.item)
+ .on(QItem.item.id.eq(itemId))
+ .fetch();
+ }
+}
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/service/ItemOptionService.java b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/service/ItemOptionService.java
new file mode 100644
index 0000000..0a1bad5
--- /dev/null
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/service/ItemOptionService.java
@@ -0,0 +1,25 @@
+package com.justpickup.storeservice.domain.itemoption.service;
+
+import com.justpickup.storeservice.domain.item.dto.ItemDto;
+import com.justpickup.storeservice.domain.itemoption.dto.ItemOptionDto;
+import com.justpickup.storeservice.domain.itemoption.repository.ItemOptionRepository;
+import com.justpickup.storeservice.domain.itemoption.repository.ItemOptionRepositoryCustom;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class ItemOptionService {
+ private final ItemOptionRepositoryCustom itemOptionRepositoryCustom;
+
+ public List getItemOption( ItemDto itemDto){
+ return itemOptionRepositoryCustom.findByItem(itemDto.getId())
+ .stream().map(ItemOptionDto::new)
+ .collect(Collectors.toList());
+ }
+}
diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/web/ItemOptionController.java b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/web/ItemOptionController.java
new file mode 100644
index 0000000..f278507
--- /dev/null
+++ b/store-service/src/main/java/com/justpickup/storeservice/domain/itemoption/web/ItemOptionController.java
@@ -0,0 +1,12 @@
+package com.justpickup.storeservice.domain.itemoption.web;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequiredArgsConstructor
+public class ItemOptionController {
+
+
+
+}