first commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { Router } from 'express';
|
||||
import db from '../db.js';
|
||||
import { auth } from '../middleware.js';
|
||||
|
||||
const router = Router();
|
||||
|
||||
// 二手闲置列表
|
||||
router.get('/', auth, (req, res) => {
|
||||
const items = db
|
||||
.prepare('SELECT s.*, u.nickname, u.avatar FROM secondhand s JOIN users u ON s.user_id = u.id ORDER BY s.created_at DESC')
|
||||
.all();
|
||||
res.json(items.map(i => ({ ...i, images: JSON.parse(i.images || '[]') })));
|
||||
});
|
||||
|
||||
// 发布闲置
|
||||
router.post('/', auth, (req, res) => {
|
||||
const { title, description, price, images } = req.body;
|
||||
if (!title || !description) {
|
||||
return res.status(400).json({ message: '请填写标题和描述' });
|
||||
}
|
||||
const info = db
|
||||
.prepare('INSERT INTO secondhand (user_id, title, description, price, images) VALUES (?, ?, ?, ?, ?)')
|
||||
.run(req.user.id, title, description, price || 0, JSON.stringify(images || []));
|
||||
res.json(db.prepare('SELECT * FROM secondhand WHERE id = ?').get(info.lastInsertRowid));
|
||||
});
|
||||
|
||||
// 更新状态(下架/售出)
|
||||
router.put('/:id', auth, (req, res) => {
|
||||
const item = db.prepare('SELECT * FROM secondhand WHERE id = ?').get(req.params.id);
|
||||
if (!item) return res.status(404).json({ message: '物品不存在' });
|
||||
if (item.user_id !== req.user.id && req.user.role !== 'admin') {
|
||||
return res.status(403).json({ message: '无权操作' });
|
||||
}
|
||||
const { status } = req.body;
|
||||
db.prepare('UPDATE secondhand SET status = ? WHERE id = ?').run(status, req.params.id);
|
||||
res.json(db.prepare('SELECT * FROM secondhand WHERE id = ?').get(req.params.id));
|
||||
});
|
||||
|
||||
// 删除闲置
|
||||
router.delete('/:id', auth, (req, res) => {
|
||||
const item = db.prepare('SELECT * FROM secondhand WHERE id = ?').get(req.params.id);
|
||||
if (!item) return res.status(404).json({ message: '物品不存在' });
|
||||
if (item.user_id !== req.user.id && req.user.role !== 'admin') {
|
||||
return res.status(403).json({ message: '无权删除' });
|
||||
}
|
||||
db.prepare('DELETE FROM secondhand WHERE id = ?').run(req.params.id);
|
||||
res.json({ message: '删除成功' });
|
||||
});
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user