97 lines
2.1 KiB
JavaScript
97 lines
2.1 KiB
JavaScript
const {
|
|
createOrUpdate,
|
|
findCarts,
|
|
updateCarts,
|
|
removeCarts,
|
|
selectAllCarts,
|
|
unselectAllCarts,
|
|
} = require('../service/cart.service')
|
|
const { cartFormatError } = require('../constant/err.type')
|
|
|
|
class CartController {
|
|
async add(ctx) {
|
|
// 将商品添加到购物车
|
|
// 1. 解析user_id, goods_id
|
|
const user_id = ctx.state.user.id
|
|
const goods_id = ctx.request.body.goods_id
|
|
// console.log(user_id, goods_id)
|
|
// 2. 操作数据库
|
|
const res = await createOrUpdate(user_id, goods_id)
|
|
// 3. 返回结果
|
|
ctx.body = {
|
|
code: 0,
|
|
message: '添加到购物车成功',
|
|
result: res,
|
|
}
|
|
}
|
|
|
|
async findAll(ctx) {
|
|
// 1. 解析请求参数
|
|
const { pageNum = 1, pageSize = 10 } = ctx.request.query
|
|
// 2. 操作数据库
|
|
const res = await findCarts(pageNum, pageSize)
|
|
// 3. 返回结果
|
|
ctx.body = {
|
|
code: 0,
|
|
message: '获取购物车列表成功',
|
|
result: res,
|
|
}
|
|
}
|
|
|
|
async update(ctx) {
|
|
// 1. 解析参数
|
|
const { id } = ctx.request.params
|
|
const { number, selected } = ctx.request.body
|
|
if (number === undefined && selected === undefined) {
|
|
cartFormatError.message = 'number和selected不能同时为空'
|
|
return ctx.app.emit('error', cartFormatError, ctx)
|
|
}
|
|
// 2. 操作数据库
|
|
const res = await updateCarts({ id, number, selected })
|
|
// 3. 返回数据
|
|
ctx.body = {
|
|
code: 0,
|
|
message: '更新购物车成功',
|
|
result: res,
|
|
}
|
|
}
|
|
|
|
async remove(ctx) {
|
|
const { ids } = ctx.request.body
|
|
|
|
const res = await removeCarts(ids)
|
|
|
|
ctx.body = {
|
|
code: 0,
|
|
message: '删除购物车成功',
|
|
result: res,
|
|
}
|
|
}
|
|
|
|
async selectAll(ctx) {
|
|
const user_id = ctx.state.user.id
|
|
|
|
const res = await selectAllCarts(user_id)
|
|
|
|
ctx.body = {
|
|
code: 0,
|
|
message: '全部选中',
|
|
result: res,
|
|
}
|
|
}
|
|
|
|
async unselectAll(ctx) {
|
|
const user_id = ctx.state.user.id
|
|
|
|
const res = await unselectAllCarts(user_id)
|
|
|
|
ctx.body = {
|
|
code: 0,
|
|
message: '全部不选中',
|
|
result: res,
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = new CartController()
|