diff --git a/client/src/Components/OrderCard.js b/client/src/Components/OrderCard.js new file mode 100644 index 0000000000000000000000000000000000000000..5e6c6152651bb9fdd8b43e7619f0ec3572c865df --- /dev/null +++ b/client/src/Components/OrderCard.js @@ -0,0 +1,44 @@ +import React from 'react' +import { Card, Col, Row } from 'react-bootstrap' + + + +function OrderCard(props) { + + return ( + + 주문 현황 + { + props.ordered.map((e) => ( + + {e.products.length > 1 ? + + {e.products[0].productId.pro_name} 외 {e.products.length - 1}개 + + : ( + + {e.products[0].productId.pro_name} + )} + + + 주문번호 : {e._id} + + + 결제금액 : {e.total}원 + + + 배송지 : {e.receiverInfo.address} - {e.receiverInfo.address2} + + + 주문날짜 : {e.createdAt.substring(0, 10)} + + + + ) + ) + } + + ) +} + +export default OrderCard diff --git a/client/src/Pages/Account.js b/client/src/Pages/Account.js index 9ca54fda55232c0a78899b3f2bceac6399d94b1b..8b738606abd2c561e6d34ac9e05d56ed37ffbad0 100644 --- a/client/src/Pages/Account.js +++ b/client/src/Pages/Account.js @@ -4,6 +4,7 @@ import { Link } from 'react-router-dom'; import axios from 'axios'; import catchError from '../utils/catchErrors'; import { isAuthenticated } from '../utils/auth'; +import OrderCard from '../Components/OrderCard'; const INIT_ACCOUNT = { name: "", @@ -16,7 +17,7 @@ function Account() { const [proshow, setProshow] = useState(false) const [error, setError] = useState("") const userId = isAuthenticated() - const [ordered, setOrdered] = useState('') + const [ordered, setOrdered] = useState([]) async function getUsername(user) { try { @@ -29,7 +30,7 @@ function Account() { useEffect(() => { getUsername(userId) - getOrdered(userId) + getOrdered() }, [userId]) const handleChange = (event) => { @@ -77,11 +78,15 @@ function Account() { } } - async function getOrdered({}) { + async function getOrdered() { console.log("object") try { - const response = await axios.get(`/api/users/addorder`) - setOrdered(response.data) + const response = await axios.post(`/api/users/addorder`,{ + userId:userId + }) + const a=response.data + setOrdered(a) + console.log("what=", response.data) } catch (error) { catchError(error, setError) } @@ -181,35 +186,9 @@ function Account() { - - - - - - - - - - - - - - - - - - - - - - - - - - -
주문현황배송중배송완료
케이시앵글부츠(SH)MarkOtto
2JacobThornton
3Larry the Bird
-
-
+ + + ) } diff --git a/server/controllers/user.controller.js b/server/controllers/user.controller.js index 0dde4991049aa70913add62148202f444da5fb5e..1b7ceb92400f884d5a1a7458a33367035ac53898 100644 --- a/server/controllers/user.controller.js +++ b/server/controllers/user.controller.js @@ -3,6 +3,7 @@ import User from "../schemas/User.js"; import isLength from 'validator/lib/isLength.js'; import bcrypt from 'bcryptjs'; import multer from "multer"; +import Order from "../schemas/Order.js"; const uploadimg = multer({ dest: 'uploads/' }); @@ -85,4 +86,20 @@ const update = async (req, res) => { } } -export default { signup, username, imgUpload, userById, update } \ No newline at end of file +const addorder = async (req, res) => { + const {userId}=req.body + try { + const order = await Order.find({ userId: userId }).populate({ + path: 'products.productId', + model: 'Product' + }) + console.log("hey", order) + res.status(200).json(order) + } catch (error) { + console.log(error) + res.status(500).send('주문현황을 불러오지 못했습니다.') + } +} + + +export default { signup, username, imgUpload, userById,update, addorder } \ No newline at end of file diff --git a/server/routes/user.routes.js b/server/routes/user.routes.js index f6edfdb26aa951a2efde56b9510034a87284a743..e217dcef965c3ef759a0e89efeb2e00cc9e33f98 100644 --- a/server/routes/user.routes.js +++ b/server/routes/user.routes.js @@ -10,6 +10,9 @@ router.route('/account/:userId') .get(userCtrl.username) .put(userCtrl.imgUpload, userCtrl.update) +router.route('/addorder') + .post(userCtrl.addorder) + router.param('userId', userCtrl.userById) export default router \ No newline at end of file