新增物流与商品组合选择

This commit is contained in:
dzl
2025-10-15 17:28:00 +08:00
parent bb91a76a7e
commit 21585fe3e9
4 changed files with 58 additions and 23 deletions

View File

@@ -5,7 +5,7 @@ const router = express.Router();
router.get('/', async (req, res) => { router.get('/', async (req, res) => {
try { try {
const { page = 1, limit = 10, search = '', level = '' } = req.query; const { page = 1, limit = 100, search = '', level = '' } = req.query;
// 确保参数为有效数字 // 确保参数为有效数字
const pageNum = Math.max(1, parseInt(page) || 1); const pageNum = Math.max(1, parseInt(page) || 1);

View File

@@ -329,7 +329,6 @@ router.get('/', async (req, res) => {
router.get('/:id', async (req, res) => { router.get('/:id', async (req, res) => {
try { try {
console.log(1234,req.query)
const { id } = req.params; const { id } = req.params;
// const isAdmin = req.user.role === 'admin'; // const isAdmin = req.user.role === 'admin';
@@ -345,7 +344,7 @@ router.get('/:id', async (req, res) => {
const query = ` const query = `
SELECT SELECT
o.id, o.order_no, o.user_id, o.total_amount, o.total_points, o.id, o.order_no, o.user_id, o.total_amount, o.total_points,
o.status, o.address, o.created_at, o.updated_at, o.status, o.address, o.created_at, o.updated_at, o.delivery_code, o.logistics_company,
u.username, u.phone u.username, u.phone
FROM orders o FROM orders o
LEFT JOIN users u ON o.user_id = u.id LEFT JOIN users u ON o.user_id = u.id
@@ -386,7 +385,7 @@ router.get('/:id', async (req, res) => {
} }
// 处理地址信息 // 处理地址信息
console.log(order.address,'order.address'); // console.log(order.address,'order.address');
if (order.address) { if (order.address) {
try { try {

View File

@@ -207,6 +207,11 @@ router.get('/:id', async (req, res) => {
[item.category_id] [item.category_id]
); );
item.category_name = category[0][0].category_name; item.category_name = category[0][0].category_name;
const parentCategory = await getDB().execute(
`SELECT * FROM category WHERE id = ?`,
[category[0][0].parent_id]
);
item.parentCategory_name = parentCategory[0][0].category_name;
} }
product.category = categories; product.category = categories;

View File

@@ -9,18 +9,17 @@ const sql = require("../config/config");
router.get('/names', async (req, res) => { router.get('/names', async (req, res) => {
try { try {
const {status = 'active'} = req.query; const {status = 'active'} = req.query;
const {id: created_id} = req.user; let query = `
let query = `SELECT * SELECT * FROM spec_names
FROM spec_names `;
WHERE created_id = ${created_id}`;
const params = []; const params = [];
if (status) { if (status) {
query += ' and status = ?'; query += ' WHERE status = ?';
params.push(status); params.push(status);
} }
query += ' ORDER BY sort_order, id'; query += ' ORDER BY sort_order';
const [specNames] = await getDB().execute(query, params); const [specNames] = await getDB().execute(query, params);
@@ -39,14 +38,13 @@ router.post('/names', async (req, res) => {
const db = getDB(); const db = getDB();
try { try {
const {name, display_name, sort_order = 0} = req.body; const {name, display_name, sort_order = 0} = req.body;
const {id: created_id} = req.user;
if (!name || !display_name) { if (!name || !display_name) {
return res.status(400).json({success: false, message: '规格名称和显示名称不能为空'}); return res.status(400).json({success: false, message: '规格名称和显示名称不能为空'});
} }
let spec_name = new SelectBuilder().from() // let spec_name = new SelectBuilder().from()
const [result] = await getDB().execute( const [result] = await getDB().execute(
'INSERT INTO spec_names (name, display_name, sort_order,created_id) VALUES (?, ?, ?,?)', 'INSERT INTO spec_names (name, display_name, sort_order) VALUES (?, ?, ?)',
[name, display_name, sort_order,created_id] [name, display_name, sort_order]
); );
res.status(201).json({ res.status(201).json({
@@ -67,15 +65,16 @@ router.post('/names', async (req, res) => {
router.delete('/names/:id', async (req, res) => { router.delete('/names/:id', async (req, res) => {
try { try {
const {id} = req.params; const {id} = req.params;
const {id:user_id,role} = req.user const db = getDB();
// const {id:user_id,role} = req.user
let specCountQuery = new SelectBuilder() let specCountQuery = new SelectBuilder()
.from('spec_names') .from('spec_names')
.select('COUNT(*) as total') .select('COUNT(*) as total')
.where('id=?',id) .where('id=?',id)
if(role !== 'admin'){ // if(role !== 'admin'){
specCountQuery.where('created_id=?',user_id) // specCountQuery.where('created_id=?',user_id)
} // }
let [spec] = await specCountQuery.execute(db) let [spec] = await specCountQuery.execute(db)
if (spec.total === 0) { if (spec.total === 0) {
return res.status(404).json({success: false, message: '规格名称不存在'}); return res.status(404).json({success: false, message: '规格名称不存在'});
@@ -172,11 +171,42 @@ router.post('/values', async (req, res) => {
} }
}); });
router.delete('/values/:id', async (req, res) => {
try {
const {id} = req.params;
console.log(12345,id)
// 检查规格值是否存在
const [specValue] = await getDB().execute(
'SELECT COUNT(*) as count FROM spec_values WHERE id = ?',
[id]
);
if (specValue[0].count === 0) {
return res.status(404).json({success: false, message: '规格值不存在'});
} else {
// 删除规格值
await getDB().execute(
'DELETE FROM spec_values WHERE id = ?',
[id]
);
}
res.json({
success: true,
message: '规格值删除成功'
});
} catch (error) {
console.error('删除规格值失败:', error);
res.status(500).json({success: false, message: '删除规格值失败'});
}
})
router.get('/combinations/:productId', async (req, res) => { router.get('/combinations/:productId', async (req, res) => {
try { try {
const {productId} = req.params; const {productId} = req.params;
const {status = 'active'} = req.query; const {status} = req.query;
// 获取商品的规格组合 // 获取商品的规格组合
let query = ` let query = `
@@ -390,7 +420,7 @@ router.put('/combinations/:id', async (req, res) => {
barcode, barcode,
weight, weight,
volume, volume,
status is_available
} = req.body; } = req.body;
// 检查规格组合是否存在 // 检查规格组合是否存在
@@ -447,9 +477,9 @@ router.put('/combinations/:id', async (req, res) => {
updateValues.push(volume); updateValues.push(volume);
} }
if (status !== undefined) { if (is_available !== undefined) {
updateFields.push('status = ?'); updateFields.push('status = ?');
updateValues.push(status); updateValues.push(is_available ? 'active' : 'inactive');
} }
if (updateFields.length === 0) { if (updateFields.length === 0) {
@@ -462,6 +492,7 @@ router.put('/combinations/:id', async (req, res) => {
const updateQuery = `UPDATE product_spec_combinations const updateQuery = `UPDATE product_spec_combinations
SET ${updateFields.join(', ')} SET ${updateFields.join(', ')}
WHERE id = ?`; WHERE id = ?`;
console.log(12345,updateQuery, updateValues);
await getDB().execute(updateQuery, updateValues); await getDB().execute(updateQuery, updateValues);