Ai config

This commit is contained in:
董海洋
2026-05-26 13:37:55 +08:00
parent 55452a2d21
commit 0c7ed3498d
42 changed files with 1264 additions and 767 deletions
+83
View File
@@ -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
}