重构动物模型和路由系统,优化查询逻辑并新增商户和促销活动功能

This commit is contained in:
ylweng
2025-09-22 02:04:07 +08:00
parent 5fc1a4fcb9
commit 47c816270d
54 changed files with 5384 additions and 4639 deletions

View File

@@ -15,13 +15,13 @@ const { globalErrorHandler, notFound } = require('./utils/errors');
// 检查是否为无数据库模式
const NO_DB_MODE = process.env.NO_DB_MODE === 'true';
let authRoutes, userRoutes, travelRoutes, animalRoutes, orderRoutes, adminRoutes, travelRegistrationRoutes;
let authRoutes, userRoutes, travelRoutes, animalRoutes, orderRoutes, adminRoutes, travelRegistrationRoutes, promotionRoutes, merchantRoutes;
// 路由导入 - 根据是否为无数据库模式决定是否导入实际路由
// 路由导入
if (NO_DB_MODE) {
console.log('⚠️ 无数据库模式:将使用模拟路由');
} else {
// 路由导入
console.log('✅ 数据库模式:加载实际路由');
authRoutes = require('./routes/auth');
userRoutes = require('./routes/user');
travelRoutes = require('./routes/travel');
@@ -31,6 +31,8 @@ if (NO_DB_MODE) {
travelRegistrationRoutes = require('./routes/travelRegistration'); // 旅行报名路由
paymentRoutes = require('./routes/payment-simple');
animalClaimRoutes = require('./routes/animalClaim-simple'); // 动物认领路由(简化版)
promotionRoutes = require('./routes/promotion'); // 促销活动路由
merchantRoutes = require('./routes/merchant'); // 商户路由
}
const app = express();
@@ -50,8 +52,10 @@ app.use(cors({
'https://webapi.jiebanke.com',
'http://localhost:3150', // 管理后台本地开发地址
'http://localhost:3000', // 备用端口
'http://localhost:3200', // 备用端口
'http://127.0.0.1:3150', // 备用地址
'http://127.0.0.1:3000' // 备用地址
'http://127.0.0.1:3000', // 备用地址
'http://127.0.0.1:3200' // 备用地址
],
credentials: true,
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
@@ -132,7 +136,8 @@ app.get('/api/v1', (req, res) => {
payments: '/api/v1/payments',
animalClaims: '/api/v1/animal-claims',
admin: '/api/v1/admin',
travelRegistration: '/api/v1/travel-registration'
travelRegistration: '/api/v1/travel-registration',
promotion: '/api/v1/promotion'
},
documentation: 'https://webapi.jiebanke.com/api-docs'
});
@@ -239,6 +244,20 @@ if (NO_DB_MODE) {
message: '当前为无数据库模式,管理员功能不可用'
});
});
app.use('/api/v1/promotion', (req, res) => {
res.status(503).json({
success: false,
message: '当前为无数据库模式,促销活动功能不可用'
});
});
app.use('/api/v1/merchants', (req, res) => {
res.status(503).json({
success: false,
message: '当前为无数据库模式,商户功能不可用'
});
});
} else {
// API路由
app.use('/api/v1/auth', authRoutes);
@@ -253,6 +272,10 @@ if (NO_DB_MODE) {
app.use('/api/v1/admin', adminRoutes);
// 旅行报名路由
app.use('/api/v1/travel-registration', travelRegistrationRoutes);
// 促销活动路由
app.use('/api/v1/promotion', promotionRoutes);
// 商户路由
app.use('/api/v1/merchants', merchantRoutes);
}
// 404处理