2026-05-26 09:18:48 +08:00
|
|
|
const { query } = require('../config/database')
|
2026-05-26 13:37:55 +08:00
|
|
|
const { paginate } = require('../utils/pagination')
|
2026-05-26 09:18:48 +08:00
|
|
|
|
|
|
|
|
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'
|
2026-05-26 13:37:55 +08:00
|
|
|
const result = await paginate(query, sql, params, ctx.query.page, ctx.query.pageSize)
|
2026-05-26 09:18:48 +08:00
|
|
|
|
|
|
|
|
ctx.body = {
|
|
|
|
|
code: 200,
|
2026-05-26 13:37:55 +08:00
|
|
|
...result
|
2026-05-26 09:18:48 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
}
|