保险前后端,养殖端和保险端小程序
This commit is contained in:
209
insurance_backend/routes/auth.js
Normal file
209
insurance_backend/routes/auth.js
Normal file
@@ -0,0 +1,209 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const authController = require('../controllers/authController');
|
||||
const { jwtAuth } = require('../middleware/auth');
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /api/auth/register:
|
||||
* post:
|
||||
* tags:
|
||||
* - 认证
|
||||
* summary: 用户注册
|
||||
* description: 创建新用户账户
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* required:
|
||||
* - username
|
||||
* - email
|
||||
* - password
|
||||
* properties:
|
||||
* username:
|
||||
* type: string
|
||||
* description: 用户名
|
||||
* email:
|
||||
* type: string
|
||||
* format: email
|
||||
* description: 邮箱
|
||||
* password:
|
||||
* type: string
|
||||
* format: password
|
||||
* description: 密码
|
||||
* phone:
|
||||
* type: string
|
||||
* description: 手机号
|
||||
* responses:
|
||||
* 201:
|
||||
* description: 注册成功
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* $ref: '#/components/schemas/User'
|
||||
* 400:
|
||||
* $ref: '#/components/responses/UnauthorizedError'
|
||||
*/
|
||||
router.post('/register', authController.register);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /api/auth/login:
|
||||
* post:
|
||||
* tags:
|
||||
* - 认证
|
||||
* summary: 用户登录
|
||||
* description: 用户登录获取访问令牌
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* required:
|
||||
* - username
|
||||
* - password
|
||||
* properties:
|
||||
* username:
|
||||
* type: string
|
||||
* description: 用户名或邮箱
|
||||
* password:
|
||||
* type: string
|
||||
* format: password
|
||||
* description: 密码
|
||||
* responses:
|
||||
* 200:
|
||||
* description: 登录成功
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* token:
|
||||
* type: string
|
||||
* description: JWT访问令牌
|
||||
* refreshToken:
|
||||
* type: string
|
||||
* description: 刷新令牌
|
||||
* user:
|
||||
* $ref: '#/components/schemas/User'
|
||||
* 401:
|
||||
* $ref: '#/components/responses/UnauthorizedError'
|
||||
*/
|
||||
router.post('/login', authController.login);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /api/auth/me:
|
||||
* get:
|
||||
* tags:
|
||||
* - 认证
|
||||
* summary: 获取当前用户信息
|
||||
* description: 获取当前登录用户的信息
|
||||
* security:
|
||||
* - bearerAuth: []
|
||||
* responses:
|
||||
* 200:
|
||||
* description: 获取成功
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* $ref: '#/components/schemas/User'
|
||||
* 401:
|
||||
* $ref: '#/components/responses/UnauthorizedError'
|
||||
*/
|
||||
router.get('/me', jwtAuth, authController.getCurrentUser);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /api/auth/refresh:
|
||||
* post:
|
||||
* tags:
|
||||
* - 认证
|
||||
* summary: 刷新令牌
|
||||
* description: 使用刷新令牌获取新的访问令牌
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* required:
|
||||
* - refreshToken
|
||||
* properties:
|
||||
* refreshToken:
|
||||
* type: string
|
||||
* description: 刷新令牌
|
||||
* responses:
|
||||
* 200:
|
||||
* description: 令牌刷新成功
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* token:
|
||||
* type: string
|
||||
* description: 新的JWT访问令牌
|
||||
* 401:
|
||||
* $ref: '#/components/responses/UnauthorizedError'
|
||||
*/
|
||||
router.post('/refresh', authController.refreshToken);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /api/auth/logout:
|
||||
* post:
|
||||
* tags:
|
||||
* - 认证
|
||||
* summary: 用户登出
|
||||
* description: 用户登出系统
|
||||
* security:
|
||||
* - bearerAuth: []
|
||||
* responses:
|
||||
* 200:
|
||||
* description: 登出成功
|
||||
* 401:
|
||||
* $ref: '#/components/responses/UnauthorizedError'
|
||||
*/
|
||||
router.post('/logout', jwtAuth, authController.logout);
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /api/auth/password:
|
||||
* put:
|
||||
* tags:
|
||||
* - 认证
|
||||
* summary: 修改密码
|
||||
* description: 修改当前用户的密码
|
||||
* security:
|
||||
* - bearerAuth: []
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* required:
|
||||
* - currentPassword
|
||||
* - newPassword
|
||||
* properties:
|
||||
* currentPassword:
|
||||
* type: string
|
||||
* format: password
|
||||
* description: 当前密码
|
||||
* newPassword:
|
||||
* type: string
|
||||
* format: password
|
||||
* description: 新密码
|
||||
* responses:
|
||||
* 200:
|
||||
* description: 密码修改成功
|
||||
* 401:
|
||||
* $ref: '#/components/responses/UnauthorizedError'
|
||||
*/
|
||||
router.put('/password', jwtAuth, authController.changePassword);
|
||||
|
||||
module.exports = router;
|
||||
36
insurance_backend/routes/claims.js
Normal file
36
insurance_backend/routes/claims.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const claimController = require('../controllers/claimController');
|
||||
const { jwtAuth, checkPermission } = require('../middleware/auth');
|
||||
|
||||
// 获取理赔列表
|
||||
router.get('/', jwtAuth, checkPermission('claim', 'read'),
|
||||
claimController.getClaims
|
||||
);
|
||||
|
||||
// 创建理赔申请
|
||||
router.post('/', jwtAuth, checkPermission('claim', 'create'),
|
||||
claimController.createClaim
|
||||
);
|
||||
|
||||
// 获取单个理赔详情
|
||||
router.get('/:id', jwtAuth, checkPermission('claim', 'read'),
|
||||
claimController.getClaimById
|
||||
);
|
||||
|
||||
// 审核理赔申请
|
||||
router.patch('/:id/review', jwtAuth, checkPermission('claim', 'review'),
|
||||
claimController.reviewClaim
|
||||
);
|
||||
|
||||
// 更新理赔支付状态
|
||||
router.patch('/:id/payment', jwtAuth, checkPermission('claim', 'update'),
|
||||
claimController.updateClaimPayment
|
||||
);
|
||||
|
||||
// 获取理赔统计
|
||||
router.get('/stats/overview', jwtAuth, checkPermission('claim', 'read'),
|
||||
claimController.getClaimStats
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
41
insurance_backend/routes/insurance.js
Normal file
41
insurance_backend/routes/insurance.js
Normal file
@@ -0,0 +1,41 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const insuranceController = require('../controllers/insuranceController');
|
||||
const { jwtAuth, checkPermission } = require('../middleware/auth');
|
||||
|
||||
// 获取保险申请列表
|
||||
router.get('/applications', jwtAuth, checkPermission('insurance', 'read'),
|
||||
insuranceController.getApplications
|
||||
);
|
||||
|
||||
// 创建保险申请
|
||||
router.post('/applications', jwtAuth, checkPermission('insurance', 'create'),
|
||||
insuranceController.createApplication
|
||||
);
|
||||
|
||||
// 获取单个保险申请详情
|
||||
router.get('/applications/:id', jwtAuth, checkPermission('insurance', 'read'),
|
||||
insuranceController.getApplicationById
|
||||
);
|
||||
|
||||
// 更新保险申请
|
||||
router.put('/applications/:id', jwtAuth, checkPermission('insurance', 'update'),
|
||||
insuranceController.updateApplication
|
||||
);
|
||||
|
||||
// 审核保险申请
|
||||
router.patch('/applications/:id/review', jwtAuth, checkPermission('insurance', 'review'),
|
||||
insuranceController.reviewApplication
|
||||
);
|
||||
|
||||
// 删除保险申请
|
||||
router.delete('/applications/:id', jwtAuth, checkPermission('insurance', 'delete'),
|
||||
insuranceController.deleteApplication
|
||||
);
|
||||
|
||||
// 获取保险申请统计
|
||||
router.get('/applications-stats', jwtAuth, checkPermission('insurance', 'read'),
|
||||
insuranceController.getApplicationStats
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
36
insurance_backend/routes/insuranceTypes.js
Normal file
36
insurance_backend/routes/insuranceTypes.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const insuranceTypeController = require('../controllers/insuranceTypeController');
|
||||
const { jwtAuth, checkPermission } = require('../middleware/auth');
|
||||
|
||||
// 获取保险类型列表
|
||||
router.get('/', jwtAuth, checkPermission('insurance_type', 'read'),
|
||||
insuranceTypeController.getInsuranceTypes
|
||||
);
|
||||
|
||||
// 获取单个保险类型详情
|
||||
router.get('/:id', jwtAuth, checkPermission('insurance_type', 'read'),
|
||||
insuranceTypeController.getInsuranceTypeById
|
||||
);
|
||||
|
||||
// 创建保险类型
|
||||
router.post('/', jwtAuth, checkPermission('insurance_type', 'create'),
|
||||
insuranceTypeController.createInsuranceType
|
||||
);
|
||||
|
||||
// 更新保险类型
|
||||
router.put('/:id', jwtAuth, checkPermission('insurance_type', 'update'),
|
||||
insuranceTypeController.updateInsuranceType
|
||||
);
|
||||
|
||||
// 删除保险类型
|
||||
router.delete('/:id', jwtAuth, checkPermission('insurance_type', 'delete'),
|
||||
insuranceTypeController.deleteInsuranceType
|
||||
);
|
||||
|
||||
// 更新保险类型状态
|
||||
router.patch('/:id/status', jwtAuth, checkPermission('insurance_type', 'update'),
|
||||
insuranceTypeController.updateInsuranceTypeStatus
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
36
insurance_backend/routes/policies.js
Normal file
36
insurance_backend/routes/policies.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const policyController = require('../controllers/policyController');
|
||||
const { jwtAuth, checkPermission } = require('../middleware/auth');
|
||||
|
||||
// 获取保单列表
|
||||
router.get('/', jwtAuth, checkPermission('policy', 'read'),
|
||||
policyController.getPolicies
|
||||
);
|
||||
|
||||
// 创建保单
|
||||
router.post('/', jwtAuth, checkPermission('policy', 'create'),
|
||||
policyController.createPolicy
|
||||
);
|
||||
|
||||
// 获取单个保单详情
|
||||
router.get('/:id', jwtAuth, checkPermission('policy', 'read'),
|
||||
policyController.getPolicyById
|
||||
);
|
||||
|
||||
// 更新保单
|
||||
router.put('/:id', jwtAuth, checkPermission('policy', 'update'),
|
||||
policyController.updatePolicy
|
||||
);
|
||||
|
||||
// 更新保单状态
|
||||
router.patch('/:id/status', jwtAuth, checkPermission('policy', 'update'),
|
||||
policyController.updatePolicyStatus
|
||||
);
|
||||
|
||||
// 获取保单统计
|
||||
router.get('/stats/overview', jwtAuth, checkPermission('policy', 'read'),
|
||||
policyController.getPolicyStats
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
24
insurance_backend/routes/system.js
Normal file
24
insurance_backend/routes/system.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const systemController = require('../controllers/systemController');
|
||||
const { jwtAuth, checkPermission } = require('../middleware/auth');
|
||||
|
||||
// 获取系统统计信息(需要管理员权限)
|
||||
router.get('/stats', jwtAuth, checkPermission('system', 'read'), systemController.getSystemStats);
|
||||
|
||||
// 获取系统日志
|
||||
router.get('/logs', jwtAuth, checkPermission('system', 'read'), systemController.getSystemLogs);
|
||||
|
||||
// 获取系统配置
|
||||
router.get('/config', jwtAuth, checkPermission('system', 'read'), systemController.getSystemConfig);
|
||||
|
||||
// 更新系统配置
|
||||
router.put('/config', jwtAuth, checkPermission('system', 'update'), systemController.updateSystemConfig);
|
||||
|
||||
// 备份数据库
|
||||
router.post('/backup', jwtAuth, checkPermission('system', 'admin'), systemController.backupDatabase);
|
||||
|
||||
// 恢复数据库
|
||||
router.post('/restore', jwtAuth, checkPermission('system', 'admin'), systemController.restoreDatabase);
|
||||
|
||||
module.exports = router;
|
||||
24
insurance_backend/routes/users.js
Normal file
24
insurance_backend/routes/users.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const userController = require('../controllers/userController');
|
||||
const { jwtAuth, checkPermission } = require('../middleware/auth');
|
||||
|
||||
// 获取用户列表(需要管理员权限)
|
||||
router.get('/', jwtAuth, checkPermission('user', 'read'), userController.getUsers);
|
||||
|
||||
// 获取单个用户信息
|
||||
router.get('/:id', jwtAuth, checkPermission('user', 'read'), userController.getUser);
|
||||
|
||||
// 创建用户(需要管理员权限)
|
||||
router.post('/', jwtAuth, checkPermission('user', 'create'), userController.createUser);
|
||||
|
||||
// 更新用户信息
|
||||
router.put('/:id', jwtAuth, checkPermission('user', 'update'), userController.updateUser);
|
||||
|
||||
// 删除用户(需要管理员权限)
|
||||
router.delete('/:id', jwtAuth, checkPermission('user', 'delete'), userController.deleteUser);
|
||||
|
||||
// 更新用户状态
|
||||
router.patch('/:id/status', jwtAuth, checkPermission('user', 'update'), userController.updateUserStatus);
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user