order.controller.js 2.21 KB
Newer Older
Jiwon Yoon's avatar
Jiwon Yoon committed
1
import Order from "../schemas/Order.js";
2
import User from "../schemas/User.js";
Jiwon Yoon's avatar
Jiwon Yoon committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16

const addorder = async (req, res) => {
    const { userId, products, receiverInfo, total } = req.body
    try {
        const newOrder = await new Order({
            userId, products, receiverInfo, total
        }).save()
        res.status(200).send('Order DB에 저장 완료')
    } catch (error) {
        console.log(error)
        res.status(500).send('Order DB에 저장 실패')
    }
}

17
18
19
20
21
22
23
24
25
26
27
const Ordered = async (req, res) => {
    const { db } = req.body
    try {
        const ordered = await req.body.findOne({}, { _id: 0}).select(`${db}`)
        console.log("sub= ",ordered);
        res.json(ordered);
    } catch (error) {
        res.status(500).send('카테고리를 불러오지 못했습니다.')
    }
}

Jiwon Yoon's avatar
Jiwon Yoon committed
28
29
const showorder = async (req, res) => {
    try {
30
        const order = await Order.find({ userId: req.userId }).sort({_id:-1}).limit(1).populate({
Jiwon Yoon's avatar
Jiwon Yoon committed
31
32
33
            path: 'products.productId',
            model: 'Product'
        })
34
35
        console.log(order)
        res.status(200).json(order[0])
Jiwon Yoon's avatar
Jiwon Yoon committed
36
37
38
39
40
41
42
    } catch (error) {
        console.log(error)
        res.status(500).send('쇼핑카트를 불러오지 못했습니다.')
    }
}


43
44
45
46
47
48
49
50
51
52
53
54
55
const orderById = async (req, res, next, id) => {
    try {
        const user = await User.findById(id)
        if (!user) {
            res.status(404).send('사용자를 찾을 수 없습니다')
        }
        req.userId = user
        next()
    } catch (error) {
        console.log(error);
        res.status(500).send('사용자 아이디 검색 실패')
    }
}
Jiwon Yoon's avatar
Jiwon Yoon committed
56

이재연's avatar
aaaa    
이재연 committed
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

const recommendPro = async (req,res)=>{
    try {
        const recommend = await Order.aggregate([
            { "$unwind": "$products" },
            // {
            //     $match:{'products.productId':'600e2fcc8afbb038487cc8fa'}
            // },
            {
                $group:
                {
                    _id:'$products.productId',
                    num_total:{$sum:1}
                }
            }
        ])
        console.log(recommend)
    } catch (error) {
        console.log(error)
        res.status(500).send('추천 실패')
    }
}

export default { addorder, showorder, orderById , Ordered , recommendPro}