Ai config
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
const { query, transaction } = require('../config/database')
|
||||
|
||||
async function getSpecs(ctx) {
|
||||
const goodsId = ctx.query.goods_id
|
||||
if (!goodsId) {
|
||||
ctx.body = { code: 400, message: '缺少 goods_id 参数' }
|
||||
return
|
||||
}
|
||||
|
||||
const rows = await query('SELECT * FROM goods_specs WHERE goods_id = ? ORDER BY price ASC', [goodsId])
|
||||
ctx.body = { code: 200, data: rows }
|
||||
}
|
||||
|
||||
async function createSpec(ctx) {
|
||||
const { goods_id, spec_name, price, stock = 0 } = ctx.request.body
|
||||
|
||||
if (!goods_id || !spec_name || price === undefined) {
|
||||
ctx.body = { code: 400, message: '缺少必填参数' }
|
||||
return
|
||||
}
|
||||
|
||||
const result = await query(
|
||||
'INSERT INTO goods_specs (goods_id, spec_name, price, stock) VALUES (?, ?, ?, ?)',
|
||||
[goods_id, spec_name, price, stock]
|
||||
)
|
||||
|
||||
ctx.body = { code: 200, data: { id: result.insertId } }
|
||||
}
|
||||
|
||||
async function updateSpec(ctx) {
|
||||
const id = ctx.params.id
|
||||
const { spec_name, price, stock } = ctx.request.body
|
||||
|
||||
const fields = []
|
||||
const params = []
|
||||
if (spec_name !== undefined) { fields.push('spec_name = ?'); params.push(spec_name) }
|
||||
if (price !== undefined) { fields.push('price = ?'); params.push(price) }
|
||||
if (stock !== undefined) { fields.push('stock = ?'); params.push(stock) }
|
||||
|
||||
if (fields.length > 0) {
|
||||
params.push(id)
|
||||
await query(`UPDATE goods_specs SET ${fields.join(', ')} WHERE id = ?`, params)
|
||||
}
|
||||
|
||||
ctx.body = { code: 200, message: '更新成功' }
|
||||
}
|
||||
|
||||
async function deleteSpec(ctx) {
|
||||
const id = ctx.params.id
|
||||
await query('DELETE FROM goods_specs WHERE id = ?', [id])
|
||||
ctx.body = { code: 200, message: '删除成功' }
|
||||
}
|
||||
|
||||
async function batchSave(ctx) {
|
||||
const { goods_id, specs } = ctx.request.body
|
||||
|
||||
if (!goods_id || !Array.isArray(specs)) {
|
||||
ctx.body = { code: 400, message: '参数错误' }
|
||||
return
|
||||
}
|
||||
|
||||
await transaction(async (conn) => {
|
||||
await conn.execute('DELETE FROM goods_specs WHERE goods_id = ?', [goods_id])
|
||||
for (const spec of specs) {
|
||||
if (spec.spec_name && spec.price !== undefined) {
|
||||
await conn.execute(
|
||||
'INSERT INTO goods_specs (goods_id, spec_name, price, stock) VALUES (?, ?, ?, ?)',
|
||||
[goods_id, spec.spec_name, spec.price, spec.stock || 0]
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
ctx.body = { code: 200, message: '保存成功' }
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getSpecs,
|
||||
createSpec,
|
||||
updateSpec,
|
||||
deleteSpec,
|
||||
batchSave
|
||||
}
|
||||
Reference in New Issue
Block a user