Files
董海洋 0c7ed3498d Ai config
2026-05-26 13:37:55 +08:00

97 lines
2.4 KiB
JavaScript

const { query } = require('../config/database')
const { paginate } = require('../utils/pagination')
async function getSuppliers(ctx) {
let sql = 'SELECT * FROM suppliers WHERE 1=1'
const params = []
if (ctx.query.keyword) {
sql += ' AND (name LIKE ? OR contact LIKE ? OR phone LIKE ?)'
params.push(`%${ctx.query.keyword}%`, `%${ctx.query.keyword}%`, `%${ctx.query.keyword}%`)
}
sql += ' ORDER BY id DESC'
const result = await paginate(query, sql, params, ctx.query.page, ctx.query.pageSize)
ctx.body = {
code: 200,
...result
}
}
async function getSupplierById(ctx) {
const id = parseInt(ctx.params.id)
const suppliers = await query('SELECT * FROM suppliers WHERE id = ?', [id])
if (suppliers.length > 0) {
ctx.body = { code: 200, data: suppliers[0] }
} else {
ctx.body = { code: 404, message: '供应商不存在' }
}
}
async function createSupplier(ctx) {
const { name, contact, phone, address } = ctx.request.body
if (!name) {
ctx.body = { code: 400, message: '请输入供应商名称' }
return
}
const result = await query(
'INSERT INTO suppliers (name, contact, phone, address) VALUES (?, ?, ?, ?)',
[name, contact || '', phone || '', address || '']
)
ctx.body = {
code: 200,
message: '添加成功',
data: { id: result.insertId }
}
}
async function updateSupplier(ctx) {
const id = parseInt(ctx.params.id)
const { name, contact, phone, address } = ctx.request.body
if (!name) {
ctx.body = { code: 400, message: '请输入供应商名称' }
return
}
const result = await query(
'UPDATE suppliers SET name = ?, contact = ?, phone = ?, address = ? WHERE id = ?',
[name, contact || '', phone || '', address || '', id]
)
if (result.affectedRows > 0) {
ctx.body = { code: 200, message: '更新成功' }
} else {
ctx.body = { code: 404, message: '供应商不存在' }
}
}
async function deleteSupplier(ctx) {
const id = parseInt(ctx.params.id)
try {
const result = await query('DELETE FROM suppliers WHERE id = ?', [id])
if (result.affectedRows > 0) {
ctx.body = { code: 200, message: '删除成功' }
} else {
ctx.body = { code: 404, message: '供应商不存在' }
}
} catch (error) {
console.error('删除供应商失败:', error)
ctx.body = { code: 500, message: '删除失败' }
}
}
module.exports = {
getSuppliers,
getSupplierById,
createSupplier,
updateSupplier,
deleteSupplier
}