重构认证系统和订单支付功能,新增邮箱验证、密码重置及支付流程

This commit is contained in:
2025-09-22 18:19:31 +08:00
parent 98f81840f2
commit 44aee19acc
4 changed files with 13 additions and 14 deletions

View File

@@ -242,8 +242,7 @@ async function payOrder(req, res, next) {
*/
async function getOrderStatistics(req, res, next) {
try {
const userId = req.user.id;
const statistics = await OrderService.getOrderStatistics(userId);
const statistics = await OrderService.getOrderStatistics();
res.json({
success: true,

View File

@@ -20,12 +20,12 @@ const router = express.Router();
// 创建订单
router.post('/', authenticate, createOrder);
// 获取订单详情
router.get('/:orderId', authenticate, getOrder);
// 获取订单统计信息
router.get('/statistics', authenticate, getOrderStatistics);
// 获取订单详情
router.get('/:orderId', authenticate, getOrder);
// 管理员获取所有订单
router.get('/admin', authenticate, requireAdmin, getAllOrders);

View File

@@ -60,7 +60,7 @@ class OrderService {
LEFT JOIN animals a ON o.animal_id = a.id
LEFT JOIN users u ON o.user_id = u.id
LEFT JOIN merchants m ON o.merchant_id = m.id
WHERE o.id = ? AND o.is_deleted = 0
WHERE o.id = ?
`;
const [order] = await database.query(query, [orderId]);
@@ -163,13 +163,13 @@ class OrderService {
FROM orders o
LEFT JOIN animals a ON o.animal_id = a.id
LEFT JOIN users u ON o.user_id = u.id
WHERE o.merchant_id = ? AND o.is_deleted = 0
WHERE o.merchant_id = ?
`;
let countQuery = `
SELECT COUNT(*) as total
FROM orders o
WHERE o.merchant_id = ? AND o.is_deleted = 0
WHERE o.merchant_id = ?
`;
const params = [merchantId];
@@ -220,7 +220,7 @@ class OrderService {
const query = `
UPDATE orders
SET status = ?, updated_by = ?, updated_at = CURRENT_TIMESTAMP
WHERE id = ? AND is_deleted = 0
WHERE id = ?
`;
const result = await database.query(query, [status, userId, orderId]);
@@ -245,12 +245,11 @@ class OrderService {
async deleteOrder(orderId, userId) {
try {
const query = `
UPDATE orders
SET is_deleted = 1, deleted_by = ?, deleted_at = CURRENT_TIMESTAMP
WHERE id = ? AND is_deleted = 0
DELETE FROM orders
WHERE id = ?
`;
const result = await database.query(query, [userId, orderId]);
const result = await database.query(query, [orderId]);
return result.affectedRows > 0;
} catch (error) {
@@ -323,7 +322,7 @@ class OrderService {
SUM(CASE WHEN status = 'cancelled' THEN 1 ELSE 0 END) as cancelled_orders,
SUM(total_amount) as total_revenue
FROM orders
WHERE merchant_id = ? AND is_deleted = 0
WHERE merchant_id = ?
`;
const [stats] = await database.query(query, [merchantId]);

View File

@@ -113,6 +113,7 @@ class UserService {
queryParams.push(parseInt(pageSize), parseInt(offset));
const users = await UserMySQL.query(sql, queryParams);
return {
users: users.map(user => UserMySQL.sanitize(user)),