fix(store-service, owner-vue): item 저장 및 수정

- item 조회후 DTO로 변환하는 과정에서 N+1 해결
- Category 조회시 N+1 해결
This commit is contained in:
hoon7566
2022-03-01 15:45:12 +09:00
parent ca61356a2d
commit 59f9651924
9 changed files with 126 additions and 68 deletions

View File

@@ -0,0 +1,34 @@
import axios from "axios";
export default {
getCategoryList(){
return axios.get(process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/category');
},
putCategoryList(data){
return this.$axios({
method:'put',
url:process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/category',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
data: data,
responseType:'json'
})
},
getItemById(itemId){
return axios.get(process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/item/'+itemId)
},
saveItem(method, itemData){
return axios({
method:method,
url: process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/item',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
data: itemData,
responseType:'json'
})
},
}

View File

@@ -56,6 +56,7 @@
<script>
import draggable from 'vuedraggable'
import store from "@/api/store";
import {
mdiContentSave, mdiDelete,
mdiPlus,
@@ -114,41 +115,23 @@ export default {
}
data.categoryList.push(category)
})
console.log(data)
this.$axios({
method:'put',
url:process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/category',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
data: data,
responseType:'json'
})
.then(function (response) {
console.log(response)
vm.deletedList=[]
vm.getCategoryList()
store.putCategoryList(data)
.then(function () {
vm.deletedList=[]
vm.getCategoryList()
});
},
getCategoryList:function(){
var vm =this;
console.log(process.env.OWNER_SERVICE_BASEURL)
this.$axios({
method:'get',
url: process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/category',
responseType:'json'
})
store.getCategoryList()
.then(function (response) {
console.log(response.data.data)
vm.categoryList = response.data.data;
});
}
},
mounted() {
alert()
this.getCategoryList();
}
}

View File

@@ -72,6 +72,7 @@ import {
} from '@mdi/js'
// import axios from "axios";
import MenuItem from "@/views/MenuItem";
import store from "@/api/store";
export default {
name: "Menu",
@@ -170,41 +171,31 @@ export default {
otherOption : []
}
this.$axios({
method:'get',
url: process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/category',
responseType:'json'
})
.then(function (response) {
response.data.data.forEach(function (ele){
vm.modalData.categoryList.push(ele)
})
});
store.getCategoryList()
.then(function (response) {
response.data.data.forEach(function (ele){
vm.modalData.categoryList.push(ele)
})
});
},
editModalOpen:function(item){
var vm = this
this.getModalData();
// var vm =this;
this.$axios({
method:'get',
url: process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/item/'+item.id,
responseType:'json'
})
.then(function (response) {
var item = response.data.data;
vm.modalData.itemId = item.id;
vm.modalData.itemName = item.name;
vm.modalData.itemPrice = item.price;
vm.modalData.categoryId = item.categoryId;
item.itemOptions.forEach(function(ele){
console.log(ele)
if(ele.optionType === "REQUIRED")
vm.modalData.requiredOption.push(ele)
else
vm.modalData.otherOption.push(ele)
})
});
store.getItemById(item.id)
.then(function (response) {
var item = response.data.data;
vm.modalData.itemId = item.id;
vm.modalData.itemName = item.name;
vm.modalData.itemPrice = item.price;
vm.modalData.categoryId = item.categoryId;
item.itemOptions.forEach(function(ele){
if(ele.optionType === "REQUIRED")
vm.modalData.requiredOption.push(ele)
else
vm.modalData.otherOption.push(ele)
})
});
},
itemSave:function(){
var method =''
@@ -214,16 +205,7 @@ export default {
else
method='post'
this.$axios({
method:method,
url: process.env.VUE_APP_OWNER_SERVICE_BASEURL+'/store-service/item',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
data: itemData,
responseType:'json'
})
store.saveItem(method,itemData)
.then(response => console.log(response))
.catch(reason => console.log(reason))