保险前后端,养殖端和保险端小程序

This commit is contained in:
xuqiuyun
2025-09-17 19:01:52 +08:00
parent e4287b83fe
commit 473891163c
218 changed files with 109331 additions and 14103 deletions

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;