修改管理后台

This commit is contained in:
shenquanyi
2025-09-12 20:08:42 +08:00
parent 39d61c6f9b
commit 80a24c2d60
286 changed files with 75316 additions and 9452 deletions

View File

@@ -0,0 +1,94 @@
/**
* 牛只档案路由 - 基于iot_cattle表
*/
const express = require('express');
const multer = require('multer');
const router = express.Router();
const iotCattleController = require('../controllers/iotCattleController');
const { verifyToken, checkRole } = require('../middleware/auth');
// 配置文件上传
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/') // 上传文件保存目录
},
filename: function (req, file, cb) {
// 生成唯一文件名
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
cb(null, file.fieldname + '-' + uniqueSuffix + '.' + file.originalname.split('.').pop());
}
});
const upload = multer({
storage: storage,
limits: {
fileSize: 10 * 1024 * 1024 // 限制文件大小为10MB
},
fileFilter: function (req, file, cb) {
// 只允许Excel文件
const allowedTypes = [
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.ms-excel'
];
if (allowedTypes.includes(file.mimetype)) {
cb(null, true);
} else {
cb(new Error('只允许上传Excel文件(.xlsx或.xls格式)'), false);
}
}
});
// 公开API路由不需要验证token
const publicRoutes = express.Router();
router.use('/public', publicRoutes);
// 公开获取牛只档案列表
publicRoutes.get('/', iotCattleController.getCattleArchives);
// 公开获取单个牛只档案详情
publicRoutes.get('/:id', iotCattleController.getCattleArchiveById);
// 公开下载导入模板
publicRoutes.get('/import/template', iotCattleController.downloadImportTemplate);
// 公开获取栏舍列表
publicRoutes.get('/pens/list', iotCattleController.getPens);
// 公开获取批次列表
publicRoutes.get('/batches/list', iotCattleController.getBatches);
// 获取牛只档案列表
router.get('/', verifyToken, iotCattleController.getCattleArchives);
// 获取单个牛只档案详情
router.get('/:id', verifyToken, iotCattleController.getCattleArchiveById);
// 创建牛只档案
router.post('/', verifyToken, checkRole(['admin', 'manager']), iotCattleController.createCattleArchive);
// 更新牛只档案
router.put('/:id', verifyToken, checkRole(['admin', 'manager']), iotCattleController.updateCattleArchive);
// 删除牛只档案
router.delete('/:id', verifyToken, checkRole(['admin', 'manager']), iotCattleController.deleteCattleArchive);
// 批量删除牛只档案
router.delete('/', verifyToken, checkRole(['admin', 'manager']), iotCattleController.batchDeleteCattleArchives);
// 获取农场列表
router.get('/farms/list', verifyToken, iotCattleController.getFarms);
// 获取栏舍列表
router.get('/pens/list', verifyToken, iotCattleController.getPens);
// 获取批次列表
router.get('/batches/list', verifyToken, iotCattleController.getBatches);
// 导入牛只档案数据
router.post('/import', verifyToken, checkRole(['admin', 'manager']), upload.single('file'), iotCattleController.importCattleArchives);
// 下载导入模板
router.get('/import/template', verifyToken, iotCattleController.downloadImportTemplate);
module.exports = router;