koa-boot-runtime 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aiToolRegistry.d.ts +32 -0
- package/dist/aiToolRegistry.d.ts.map +1 -0
- package/dist/aiToolRegistry.js +41 -0
- package/dist/aiToolRegistry.js.map +1 -0
- package/dist/build/routes.d.ts +3 -0
- package/dist/build/routes.d.ts.map +1 -0
- package/dist/build/routes.js +4055 -0
- package/dist/build/routes.js.map +1 -0
- package/dist/build/swagger.json +6752 -0
- package/dist/common/decorators/index.d.ts +2 -0
- package/dist/common/decorators/index.d.ts.map +1 -0
- package/dist/common/decorators/index.js +18 -0
- package/dist/common/decorators/index.js.map +1 -0
- package/dist/common/decorators/validation.d.ts +33 -0
- package/dist/common/decorators/validation.d.ts.map +1 -0
- package/dist/common/decorators/validation.js +215 -0
- package/dist/common/decorators/validation.js.map +1 -0
- package/dist/common/dto.d.ts +17 -0
- package/dist/common/dto.d.ts.map +1 -0
- package/dist/common/dto.js +28 -0
- package/dist/common/dto.js.map +1 -0
- package/dist/common/enums/base.d.ts +14 -0
- package/dist/common/enums/base.d.ts.map +1 -0
- package/dist/common/enums/base.js +14 -0
- package/dist/common/enums/base.js.map +1 -0
- package/dist/common/enums/index.d.ts +8 -0
- package/dist/common/enums/index.d.ts.map +1 -0
- package/dist/common/enums/index.js +24 -0
- package/dist/common/enums/index.js.map +1 -0
- package/dist/common/enums/system.d.ts +14 -0
- package/dist/common/enums/system.d.ts.map +1 -0
- package/dist/common/enums/system.js +14 -0
- package/dist/common/enums/system.js.map +1 -0
- package/dist/common/index.d.ts +6 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +25 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/paginate.d.ts +49 -0
- package/dist/common/paginate.d.ts.map +1 -0
- package/dist/common/paginate.js +47 -0
- package/dist/common/paginate.js.map +1 -0
- package/dist/common/types/index.d.ts +8 -0
- package/dist/common/types/index.d.ts.map +1 -0
- package/dist/common/types/index.js +18 -0
- package/dist/common/types/index.js.map +1 -0
- package/dist/common/types/pagination.d.ts +76 -0
- package/dist/common/types/pagination.d.ts.map +1 -0
- package/dist/common/types/pagination.js +29 -0
- package/dist/common/types/pagination.js.map +1 -0
- package/dist/common/types/request.d.ts +66 -0
- package/dist/common/types/request.d.ts.map +1 -0
- package/dist/common/types/request.js +4 -0
- package/dist/common/types/request.js.map +1 -0
- package/dist/common/types/response.d.ts +109 -0
- package/dist/common/types/response.d.ts.map +1 -0
- package/dist/common/types/response.js +50 -0
- package/dist/common/types/response.js.map +1 -0
- package/dist/common/types/sort.d.ts +71 -0
- package/dist/common/types/sort.d.ts.map +1 -0
- package/dist/common/types/sort.js +46 -0
- package/dist/common/types/sort.js.map +1 -0
- package/dist/config/database.d.ts +12 -0
- package/dist/config/database.d.ts.map +1 -0
- package/dist/config/database.js +24 -0
- package/dist/config/database.js.map +1 -0
- package/dist/config/index.d.ts +144 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +180 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/ioc.d.ts +6 -0
- package/dist/config/ioc.d.ts.map +1 -0
- package/dist/config/ioc.js +29 -0
- package/dist/config/ioc.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/auth.d.ts +3 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +52 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/errorHandler.d.ts +3 -0
- package/dist/middleware/errorHandler.d.ts.map +1 -0
- package/dist/middleware/errorHandler.js +40 -0
- package/dist/middleware/errorHandler.js.map +1 -0
- package/dist/middleware/logger.d.ts +3 -0
- package/dist/middleware/logger.d.ts.map +1 -0
- package/dist/middleware/logger.js +13 -0
- package/dist/middleware/logger.js.map +1 -0
- package/dist/middleware/operationLogger.d.ts +11 -0
- package/dist/middleware/operationLogger.d.ts.map +1 -0
- package/dist/middleware/operationLogger.js +155 -0
- package/dist/middleware/operationLogger.js.map +1 -0
- package/dist/middleware/permission.d.ts +23 -0
- package/dist/middleware/permission.d.ts.map +1 -0
- package/dist/middleware/permission.js +153 -0
- package/dist/middleware/permission.js.map +1 -0
- package/dist/middleware/validate.d.ts +7 -0
- package/dist/middleware/validate.d.ts.map +1 -0
- package/dist/middleware/validate.js +53 -0
- package/dist/middleware/validate.js.map +1 -0
- package/dist/middlewares.d.ts +15 -0
- package/dist/middlewares.d.ts.map +1 -0
- package/dist/middlewares.js +24 -0
- package/dist/middlewares.js.map +1 -0
- package/dist/registerRoutes.d.ts +15 -0
- package/dist/registerRoutes.d.ts.map +1 -0
- package/dist/registerRoutes.js +83 -0
- package/dist/registerRoutes.js.map +1 -0
- package/dist/system/department/department.controller.d.ts +46 -0
- package/dist/system/department/department.controller.d.ts.map +1 -0
- package/dist/system/department/department.controller.js +203 -0
- package/dist/system/department/department.controller.js.map +1 -0
- package/dist/system/department/department.model.d.ts +33 -0
- package/dist/system/department/department.model.d.ts.map +1 -0
- package/dist/system/department/department.model.js +171 -0
- package/dist/system/department/department.model.js.map +1 -0
- package/dist/system/department/department.service.d.ts +40 -0
- package/dist/system/department/department.service.d.ts.map +1 -0
- package/dist/system/department/department.service.js +99 -0
- package/dist/system/department/department.service.js.map +1 -0
- package/dist/system/dictItem/dictItem.controller.d.ts +42 -0
- package/dist/system/dictItem/dictItem.controller.d.ts.map +1 -0
- package/dist/system/dictItem/dictItem.controller.js +167 -0
- package/dist/system/dictItem/dictItem.controller.js.map +1 -0
- package/dist/system/dictItem/dictItem.model.d.ts +38 -0
- package/dist/system/dictItem/dictItem.model.d.ts.map +1 -0
- package/dist/system/dictItem/dictItem.model.js +180 -0
- package/dist/system/dictItem/dictItem.model.js.map +1 -0
- package/dist/system/dictItem/dictItem.service.d.ts +33 -0
- package/dist/system/dictItem/dictItem.service.d.ts.map +1 -0
- package/dist/system/dictItem/dictItem.service.js +97 -0
- package/dist/system/dictItem/dictItem.service.js.map +1 -0
- package/dist/system/dictType/dictType.controller.d.ts +47 -0
- package/dist/system/dictType/dictType.controller.d.ts.map +1 -0
- package/dist/system/dictType/dictType.controller.js +174 -0
- package/dist/system/dictType/dictType.controller.js.map +1 -0
- package/dist/system/dictType/dictType.model.d.ts +31 -0
- package/dist/system/dictType/dictType.model.d.ts.map +1 -0
- package/dist/system/dictType/dictType.model.js +127 -0
- package/dist/system/dictType/dictType.model.js.map +1 -0
- package/dist/system/dictType/dictType.service.d.ts +27 -0
- package/dist/system/dictType/dictType.service.d.ts.map +1 -0
- package/dist/system/dictType/dictType.service.js +74 -0
- package/dist/system/dictType/dictType.service.js.map +1 -0
- package/dist/system/employee/employee.controller.d.ts +16 -0
- package/dist/system/employee/employee.controller.d.ts.map +1 -0
- package/dist/system/employee/employee.controller.js +111 -0
- package/dist/system/employee/employee.controller.js.map +1 -0
- package/dist/system/employee/employee.model.d.ts +34 -0
- package/dist/system/employee/employee.model.d.ts.map +1 -0
- package/dist/system/employee/employee.model.js +186 -0
- package/dist/system/employee/employee.model.js.map +1 -0
- package/dist/system/employee/employee.service.d.ts +16 -0
- package/dist/system/employee/employee.service.d.ts.map +1 -0
- package/dist/system/employee/employee.service.js +49 -0
- package/dist/system/employee/employee.service.js.map +1 -0
- package/dist/system/fileUpload/fileUpload.controller.d.ts +35 -0
- package/dist/system/fileUpload/fileUpload.controller.d.ts.map +1 -0
- package/dist/system/fileUpload/fileUpload.controller.js +228 -0
- package/dist/system/fileUpload/fileUpload.controller.js.map +1 -0
- package/dist/system/fileUpload/fileUpload.model.d.ts +13 -0
- package/dist/system/fileUpload/fileUpload.model.d.ts.map +1 -0
- package/dist/system/fileUpload/fileUpload.model.js +71 -0
- package/dist/system/fileUpload/fileUpload.model.js.map +1 -0
- package/dist/system/fileUpload/fileUpload.service.d.ts +29 -0
- package/dist/system/fileUpload/fileUpload.service.d.ts.map +1 -0
- package/dist/system/fileUpload/fileUpload.service.js +61 -0
- package/dist/system/fileUpload/fileUpload.service.js.map +1 -0
- package/dist/system/loginLog/loginLog.controller.d.ts +21 -0
- package/dist/system/loginLog/loginLog.controller.d.ts.map +1 -0
- package/dist/system/loginLog/loginLog.controller.js +149 -0
- package/dist/system/loginLog/loginLog.controller.js.map +1 -0
- package/dist/system/loginLog/loginLog.model.d.ts +26 -0
- package/dist/system/loginLog/loginLog.model.d.ts.map +1 -0
- package/dist/system/loginLog/loginLog.model.js +150 -0
- package/dist/system/loginLog/loginLog.model.js.map +1 -0
- package/dist/system/loginLog/loginLog.service.d.ts +24 -0
- package/dist/system/loginLog/loginLog.service.d.ts.map +1 -0
- package/dist/system/loginLog/loginLog.service.js +87 -0
- package/dist/system/loginLog/loginLog.service.js.map +1 -0
- package/dist/system/menu/menu.controller.d.ts +46 -0
- package/dist/system/menu/menu.controller.d.ts.map +1 -0
- package/dist/system/menu/menu.controller.js +203 -0
- package/dist/system/menu/menu.controller.js.map +1 -0
- package/dist/system/menu/menu.model.d.ts +45 -0
- package/dist/system/menu/menu.model.d.ts.map +1 -0
- package/dist/system/menu/menu.model.js +254 -0
- package/dist/system/menu/menu.model.js.map +1 -0
- package/dist/system/menu/menu.service.d.ts +40 -0
- package/dist/system/menu/menu.service.d.ts.map +1 -0
- package/dist/system/menu/menu.service.js +101 -0
- package/dist/system/menu/menu.service.js.map +1 -0
- package/dist/system/operationLog/operationLog.controller.d.ts +34 -0
- package/dist/system/operationLog/operationLog.controller.d.ts.map +1 -0
- package/dist/system/operationLog/operationLog.controller.js +126 -0
- package/dist/system/operationLog/operationLog.controller.js.map +1 -0
- package/dist/system/operationLog/operationLog.model.d.ts +38 -0
- package/dist/system/operationLog/operationLog.model.d.ts.map +1 -0
- package/dist/system/operationLog/operationLog.model.js +224 -0
- package/dist/system/operationLog/operationLog.model.js.map +1 -0
- package/dist/system/operationLog/operationLog.service.d.ts +46 -0
- package/dist/system/operationLog/operationLog.service.d.ts.map +1 -0
- package/dist/system/operationLog/operationLog.service.js +109 -0
- package/dist/system/operationLog/operationLog.service.js.map +1 -0
- package/dist/system/permission/permission.controller.d.ts +18 -0
- package/dist/system/permission/permission.controller.d.ts.map +1 -0
- package/dist/system/permission/permission.controller.js +160 -0
- package/dist/system/permission/permission.controller.js.map +1 -0
- package/dist/system/permission/permission.model.d.ts +39 -0
- package/dist/system/permission/permission.model.d.ts.map +1 -0
- package/dist/system/permission/permission.model.js +220 -0
- package/dist/system/permission/permission.model.js.map +1 -0
- package/dist/system/permission/permission.service.d.ts +40 -0
- package/dist/system/permission/permission.service.d.ts.map +1 -0
- package/dist/system/permission/permission.service.js +105 -0
- package/dist/system/permission/permission.service.js.map +1 -0
- package/dist/system/role/role.controller.d.ts +16 -0
- package/dist/system/role/role.controller.d.ts.map +1 -0
- package/dist/system/role/role.controller.js +123 -0
- package/dist/system/role/role.controller.js.map +1 -0
- package/dist/system/role/role.model.d.ts +25 -0
- package/dist/system/role/role.model.d.ts.map +1 -0
- package/dist/system/role/role.model.js +133 -0
- package/dist/system/role/role.model.js.map +1 -0
- package/dist/system/role/role.service.d.ts +17 -0
- package/dist/system/role/role.service.d.ts.map +1 -0
- package/dist/system/role/role.service.js +50 -0
- package/dist/system/role/role.service.js.map +1 -0
- package/dist/system/roleMenu/roleMenu.controller.d.ts +26 -0
- package/dist/system/roleMenu/roleMenu.controller.d.ts.map +1 -0
- package/dist/system/roleMenu/roleMenu.controller.js +83 -0
- package/dist/system/roleMenu/roleMenu.controller.js.map +1 -0
- package/dist/system/roleMenu/roleMenu.model.d.ts +35 -0
- package/dist/system/roleMenu/roleMenu.model.d.ts.map +1 -0
- package/dist/system/roleMenu/roleMenu.model.js +56 -0
- package/dist/system/roleMenu/roleMenu.model.js.map +1 -0
- package/dist/system/roleMenu/roleMenu.service.d.ts +35 -0
- package/dist/system/roleMenu/roleMenu.service.d.ts.map +1 -0
- package/dist/system/roleMenu/roleMenu.service.js +77 -0
- package/dist/system/roleMenu/roleMenu.service.js.map +1 -0
- package/dist/system/rolePermission/rolePermission.controller.d.ts +36 -0
- package/dist/system/rolePermission/rolePermission.controller.d.ts.map +1 -0
- package/dist/system/rolePermission/rolePermission.controller.js +115 -0
- package/dist/system/rolePermission/rolePermission.controller.js.map +1 -0
- package/dist/system/rolePermission/rolePermission.model.d.ts +45 -0
- package/dist/system/rolePermission/rolePermission.model.d.ts.map +1 -0
- package/dist/system/rolePermission/rolePermission.model.js +87 -0
- package/dist/system/rolePermission/rolePermission.model.js.map +1 -0
- package/dist/system/rolePermission/rolePermission.service.d.ts +50 -0
- package/dist/system/rolePermission/rolePermission.service.d.ts.map +1 -0
- package/dist/system/rolePermission/rolePermission.service.js +110 -0
- package/dist/system/rolePermission/rolePermission.service.js.map +1 -0
- package/dist/system/user/user.controller.d.ts +66 -0
- package/dist/system/user/user.controller.d.ts.map +1 -0
- package/dist/system/user/user.controller.js +322 -0
- package/dist/system/user/user.controller.js.map +1 -0
- package/dist/system/user/user.model.d.ts +58 -0
- package/dist/system/user/user.model.d.ts.map +1 -0
- package/dist/system/user/user.model.js +225 -0
- package/dist/system/user/user.model.js.map +1 -0
- package/dist/system/user/user.service.d.ts +73 -0
- package/dist/system/user/user.service.d.ts.map +1 -0
- package/dist/system/user/user.service.js +388 -0
- package/dist/system/user/user.service.js.map +1 -0
- package/dist/system/userRole/userRole.controller.d.ts +33 -0
- package/dist/system/userRole/userRole.controller.d.ts.map +1 -0
- package/dist/system/userRole/userRole.controller.js +231 -0
- package/dist/system/userRole/userRole.controller.js.map +1 -0
- package/dist/system/userRole/userRole.model.d.ts +14 -0
- package/dist/system/userRole/userRole.model.d.ts.map +1 -0
- package/dist/system/userRole/userRole.model.js +58 -0
- package/dist/system/userRole/userRole.model.js.map +1 -0
- package/dist/system/userRole/userRole.service.d.ts +29 -0
- package/dist/system/userRole/userRole.service.d.ts.map +1 -0
- package/dist/system/userRole/userRole.service.js +135 -0
- package/dist/system/userRole/userRole.service.js.map +1 -0
- package/dist/systemServices.d.ts +23 -0
- package/dist/systemServices.d.ts.map +1 -0
- package/dist/systemServices.js +40 -0
- package/dist/systemServices.js.map +1 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +70 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/aiClient.d.ts +55 -0
- package/dist/utils/aiClient.d.ts.map +1 -0
- package/dist/utils/aiClient.js +59 -0
- package/dist/utils/aiClient.js.map +1 -0
- package/dist/utils/banner.d.ts +10 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +40 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/crypto.d.ts +49 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +113 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/dataScope.d.ts +41 -0
- package/dist/utils/dataScope.d.ts.map +1 -0
- package/dist/utils/dataScope.js +130 -0
- package/dist/utils/dataScope.js.map +1 -0
- package/dist/utils/date.d.ts +48 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +145 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/emailClient.d.ts +15 -0
- package/dist/utils/emailClient.d.ts.map +1 -0
- package/dist/utils/emailClient.js +71 -0
- package/dist/utils/emailClient.js.map +1 -0
- package/dist/utils/jwt.d.ts +10 -0
- package/dist/utils/jwt.d.ts.map +1 -0
- package/dist/utils/jwt.js +31 -0
- package/dist/utils/jwt.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +108 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/ossClient.d.ts +38 -0
- package/dist/utils/ossClient.d.ts.map +1 -0
- package/dist/utils/ossClient.js +92 -0
- package/dist/utils/ossClient.js.map +1 -0
- package/dist/utils/permissionSync.d.ts +10 -0
- package/dist/utils/permissionSync.d.ts.map +1 -0
- package/dist/utils/permissionSync.js +11 -0
- package/dist/utils/permissionSync.js.map +1 -0
- package/dist/utils/redisClient.d.ts +91 -0
- package/dist/utils/redisClient.d.ts.map +1 -0
- package/dist/utils/redisClient.js +246 -0
- package/dist/utils/redisClient.js.map +1 -0
- package/dist/utils/sequence.d.ts +53 -0
- package/dist/utils/sequence.d.ts.map +1 -0
- package/dist/utils/sequence.js +109 -0
- package/dist/utils/sequence.js.map +1 -0
- package/dist/utils/smsClient.d.ts +15 -0
- package/dist/utils/smsClient.d.ts.map +1 -0
- package/dist/utils/smsClient.js +115 -0
- package/dist/utils/smsClient.js.map +1 -0
- package/dist/utils/supabaseClient.d.ts +5 -0
- package/dist/utils/supabaseClient.d.ts.map +1 -0
- package/dist/utils/supabaseClient.js +17 -0
- package/dist/utils/supabaseClient.js.map +1 -0
- package/dist/utils/unipushClient.d.ts +12 -0
- package/dist/utils/unipushClient.d.ts.map +1 -0
- package/dist/utils/unipushClient.js +109 -0
- package/dist/utils/unipushClient.js.map +1 -0
- package/dist/utils/validator.d.ts +74 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +173 -0
- package/dist/utils/validator.js.map +1 -0
- package/dist/utils/wecom.d.ts +20 -0
- package/dist/utils/wecom.d.ts.map +1 -0
- package/dist/utils/wecom.js +126 -0
- package/dist/utils/wecom.js.map +1 -0
- package/package.json +84 -0
- package/templates/schema.system.prisma +283 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// common/types - 统一类型导出
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.pageSuccess = exports.fail = exports.success = exports.BizCode = exports.toPrismaMultiOrderBy = exports.toPrismaOrderBy = exports.resolveSort = exports.SortDirection = exports.buildPaginationMeta = exports.resolvePagination = void 0;
|
|
5
|
+
var pagination_1 = require("./pagination");
|
|
6
|
+
Object.defineProperty(exports, "resolvePagination", { enumerable: true, get: function () { return pagination_1.resolvePagination; } });
|
|
7
|
+
Object.defineProperty(exports, "buildPaginationMeta", { enumerable: true, get: function () { return pagination_1.buildPaginationMeta; } });
|
|
8
|
+
var sort_1 = require("./sort");
|
|
9
|
+
Object.defineProperty(exports, "SortDirection", { enumerable: true, get: function () { return sort_1.SortDirection; } });
|
|
10
|
+
Object.defineProperty(exports, "resolveSort", { enumerable: true, get: function () { return sort_1.resolveSort; } });
|
|
11
|
+
Object.defineProperty(exports, "toPrismaOrderBy", { enumerable: true, get: function () { return sort_1.toPrismaOrderBy; } });
|
|
12
|
+
Object.defineProperty(exports, "toPrismaMultiOrderBy", { enumerable: true, get: function () { return sort_1.toPrismaMultiOrderBy; } });
|
|
13
|
+
var response_1 = require("./response");
|
|
14
|
+
Object.defineProperty(exports, "BizCode", { enumerable: true, get: function () { return response_1.BizCode; } });
|
|
15
|
+
Object.defineProperty(exports, "success", { enumerable: true, get: function () { return response_1.success; } });
|
|
16
|
+
Object.defineProperty(exports, "fail", { enumerable: true, get: function () { return response_1.fail; } });
|
|
17
|
+
Object.defineProperty(exports, "pageSuccess", { enumerable: true, get: function () { return response_1.pageSuccess; } });
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/types/index.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;AAUxB,2CAGsB;AAFpB,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AAUrB,+BAKgB;AAJd,qGAAA,aAAa,OAAA;AACb,mGAAA,WAAW,OAAA;AACX,uGAAA,eAAe,OAAA;AACf,4GAAA,oBAAoB,OAAA;AAoBtB,uCAKoB;AAJlB,mGAAA,OAAO,OAAA;AACP,mGAAA,OAAO,OAAA;AACP,gGAAA,IAAI,OAAA;AACJ,uGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 分页查询参数
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* // GET /api/users?page=1&pageSize=10
|
|
7
|
+
* const params: PaginationParams = { page: 1, pageSize: 10 };
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export interface PaginationParams {
|
|
11
|
+
/** 当前页码,从 1 开始 */
|
|
12
|
+
page: number;
|
|
13
|
+
/** 每页条数 */
|
|
14
|
+
pageSize: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 分页查询参数(可选,用于接收请求参数)
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* @Get()
|
|
22
|
+
* public async getUsers(@Query() page?: number, @Query() pageSize?: number): Promise<PageResult<User>> {
|
|
23
|
+
* const params: OptionalPaginationParams = { page, pageSize };
|
|
24
|
+
* // ...
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export interface OptionalPaginationParams {
|
|
29
|
+
/** 当前页码,从 1 开始,默认 1 */
|
|
30
|
+
page?: number;
|
|
31
|
+
/** 每页条数,默认 10 */
|
|
32
|
+
pageSize?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 分页元数据
|
|
36
|
+
*/
|
|
37
|
+
export interface PaginationMeta {
|
|
38
|
+
/** 当前页码 */
|
|
39
|
+
page: number;
|
|
40
|
+
/** 每页条数 */
|
|
41
|
+
pageSize: number;
|
|
42
|
+
/** 总记录数 */
|
|
43
|
+
total: number;
|
|
44
|
+
/** 总页数 */
|
|
45
|
+
totalPages: number;
|
|
46
|
+
/** 是否有上一页 */
|
|
47
|
+
hasPrev: boolean;
|
|
48
|
+
/** 是否有下一页 */
|
|
49
|
+
hasNext: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 分页结果
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* const result: PageResult<User> = {
|
|
57
|
+
* list: users,
|
|
58
|
+
* pagination: { page: 1, pageSize: 10, total: 100, totalPages: 10, hasPrev: false, hasNext: true }
|
|
59
|
+
* };
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export interface PageResult<T> {
|
|
63
|
+
/** 当前页数据列表 */
|
|
64
|
+
list: T[];
|
|
65
|
+
/** 分页元数据 */
|
|
66
|
+
pagination: PaginationMeta;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 从可选分页参数中解析出标准分页参数(填充默认值)
|
|
70
|
+
*/
|
|
71
|
+
export declare function resolvePagination(params?: OptionalPaginationParams): PaginationParams;
|
|
72
|
+
/**
|
|
73
|
+
* 根据总数和分页参数生成分页元数据
|
|
74
|
+
*/
|
|
75
|
+
export declare function buildPaginationMeta(total: number, params: PaginationParams): PaginationMeta;
|
|
76
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/common/types/pagination.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAwB;IACvC,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,cAAc;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY;IACZ,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,gBAAgB,CAKrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,GACvB,cAAc,CAUhB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============ 分页相关类型定义 ============
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.resolvePagination = resolvePagination;
|
|
5
|
+
exports.buildPaginationMeta = buildPaginationMeta;
|
|
6
|
+
/**
|
|
7
|
+
* 从可选分页参数中解析出标准分页参数(填充默认值)
|
|
8
|
+
*/
|
|
9
|
+
function resolvePagination(params) {
|
|
10
|
+
return {
|
|
11
|
+
page: Math.max(1, params?.page ?? 1),
|
|
12
|
+
pageSize: Math.max(1, Math.min(100, params?.pageSize ?? 10)),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 根据总数和分页参数生成分页元数据
|
|
17
|
+
*/
|
|
18
|
+
function buildPaginationMeta(total, params) {
|
|
19
|
+
const totalPages = Math.max(1, Math.ceil(total / params.pageSize));
|
|
20
|
+
return {
|
|
21
|
+
page: params.page,
|
|
22
|
+
pageSize: params.pageSize,
|
|
23
|
+
total,
|
|
24
|
+
totalPages,
|
|
25
|
+
hasPrev: params.page > 1,
|
|
26
|
+
hasNext: params.page < totalPages,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/common/types/pagination.ts"],"names":[],"mappings":";AAAA,qCAAqC;;AA4ErC,8CAKC;AAKD,kDAaC;AA1BD;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAiC;IACjE,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC;QACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,KAAa,EACb,MAAwB;IAExB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK;QACL,UAAU;QACV,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,UAAU;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Request } from 'koa';
|
|
2
|
+
/**
|
|
3
|
+
* 认证用户信息(挂载到 ctx.state.user 或 ctx.request.user 上)
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* // 在 JWT 中间件中设置
|
|
8
|
+
* ctx.state.user = { id: 'xxx', username: 'admin', roles: ['admin'] };
|
|
9
|
+
*
|
|
10
|
+
* // 在 Controller / Service 中读取
|
|
11
|
+
* const currentUser = ctx.state.user as AuthUser;
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export interface AuthUser {
|
|
15
|
+
/** 用户 ID */
|
|
16
|
+
id: string;
|
|
17
|
+
/** 用户名 */
|
|
18
|
+
username: string;
|
|
19
|
+
/** 用户拥有的角色编码列表(通过 sys_user_roles 关联获取) */
|
|
20
|
+
roles: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 扩展 Koa 的 State 类型,添加用户信息
|
|
24
|
+
*
|
|
25
|
+
* 通过 `ctx.state.user` 访问当前认证用户
|
|
26
|
+
*/
|
|
27
|
+
export interface AppState {
|
|
28
|
+
/** 当前认证用户信息(由认证中间件设置) */
|
|
29
|
+
user?: AuthUser;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 扩展 Koa 的 Context 类型,便捷访问常用属性
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { AppContext } from '../common/types';
|
|
37
|
+
*
|
|
38
|
+
* // 在中间件中使用
|
|
39
|
+
* async function myMiddleware(ctx: AppContext, next: Next) {
|
|
40
|
+
* const userId = ctx.state.user?.id;
|
|
41
|
+
* // ...
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export interface AppContext {
|
|
46
|
+
/** 请求状态 */
|
|
47
|
+
state: AppState;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 扩展 Koa Request,添加用户信息属性
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* // 在类型声明中合并到 Koa Request
|
|
55
|
+
* declare module 'koa' {
|
|
56
|
+
* interface Request {
|
|
57
|
+
* user?: AuthUser;
|
|
58
|
+
* }
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export interface AppRequest extends Request {
|
|
63
|
+
/** 当前认证用户(由认证中间件挂载) */
|
|
64
|
+
user?: AuthUser;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/common/types/request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,UAAU;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,yBAAyB;IACzB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,uBAAuB;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/common/types/request.ts"],"names":[],"mappings":";AAAA,6CAA6C"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 业务状态码
|
|
3
|
+
*
|
|
4
|
+
* 与 HTTP 状态码分离,用于表达业务层面的结果状态。
|
|
5
|
+
* SUCCESS 使用 200 对齐前端约定(前端以 code === 200 判断成功)。
|
|
6
|
+
*/
|
|
7
|
+
export declare enum BizCode {
|
|
8
|
+
/** 成功 */
|
|
9
|
+
SUCCESS = 200,
|
|
10
|
+
/** 失败(通用业务错误) */
|
|
11
|
+
FAIL = -1,
|
|
12
|
+
/** 未认证(未登录) */
|
|
13
|
+
UNAUTHORIZED = 401,
|
|
14
|
+
/** 无权限 */
|
|
15
|
+
FORBIDDEN = 403,
|
|
16
|
+
/** 资源不存在 */
|
|
17
|
+
NOT_FOUND = 404,
|
|
18
|
+
/** 参数校验失败 */
|
|
19
|
+
VALIDATION_ERROR = 422,
|
|
20
|
+
/** 服务器内部错误 */
|
|
21
|
+
INTERNAL_ERROR = 500
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 统一 API 响应基础结构
|
|
25
|
+
*
|
|
26
|
+
* 所有接口返回值都应遵循此格式,保持前后端响应结构一致。
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* // 成功响应
|
|
31
|
+
* const res: ApiResponse<User> = { code: BizCode.SUCCESS, message: '操作成功', data: user };
|
|
32
|
+
*
|
|
33
|
+
* // 失败响应
|
|
34
|
+
* const res: ApiResponse<null> = { code: BizCode.FAIL, message: '用户名已存在', data: null };
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export interface ApiResponse<T = unknown> {
|
|
38
|
+
/** 业务状态码(200=成功,非200=失败) */
|
|
39
|
+
code: BizCode | number;
|
|
40
|
+
/** 响应消息 */
|
|
41
|
+
message: string;
|
|
42
|
+
/** 响应数据 */
|
|
43
|
+
data: T;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 成功响应(泛型数据)
|
|
47
|
+
*/
|
|
48
|
+
export type SuccessResponse<T> = ApiResponse<T> & {
|
|
49
|
+
code: BizCode.SUCCESS;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* 失败响应
|
|
53
|
+
*/
|
|
54
|
+
export type FailResponse<T = null> = ApiResponse<T> & {
|
|
55
|
+
code: number;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* 分页数据响应
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* const res: PageResponse<User> = {
|
|
63
|
+
* code: BizCode.SUCCESS,
|
|
64
|
+
* message: '查询成功',
|
|
65
|
+
* data: {
|
|
66
|
+
* list: users,
|
|
67
|
+
* pagination: { page: 1, pageSize: 10, total: 100, totalPages: 10, hasPrev: false, hasNext: true }
|
|
68
|
+
* }
|
|
69
|
+
* };
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export interface PageResponse<T> extends ApiResponse<{
|
|
73
|
+
list: T[];
|
|
74
|
+
pagination: unknown;
|
|
75
|
+
}> {
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 错误响应体
|
|
79
|
+
*
|
|
80
|
+
* errorHandler 已统一使用 `fail()` 函数返回 ApiResponse 格式,
|
|
81
|
+
* 开发环境下额外携带 stack 字段便于调试。
|
|
82
|
+
*/
|
|
83
|
+
export type ErrorResponse = FailResponse & {
|
|
84
|
+
/** 错误堆栈(仅开发环境) */
|
|
85
|
+
stack?: string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* 构建成功响应
|
|
89
|
+
*/
|
|
90
|
+
export declare function success<T>(data: T, message?: string): SuccessResponse<T>;
|
|
91
|
+
/**
|
|
92
|
+
* 构建失败响应
|
|
93
|
+
*/
|
|
94
|
+
export declare function fail<T = null>(message?: string, code?: number, data?: T): FailResponse<T>;
|
|
95
|
+
/**
|
|
96
|
+
* 构建分页响应
|
|
97
|
+
*/
|
|
98
|
+
export declare function pageSuccess<T>(list: T[], pagination: {
|
|
99
|
+
page: number;
|
|
100
|
+
pageSize: number;
|
|
101
|
+
total: number;
|
|
102
|
+
totalPages: number;
|
|
103
|
+
hasPrev: boolean;
|
|
104
|
+
hasNext: boolean;
|
|
105
|
+
}, message?: string): ApiResponse<{
|
|
106
|
+
list: T[];
|
|
107
|
+
pagination: typeof pagination;
|
|
108
|
+
}>;
|
|
109
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/common/types/response.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,oBAAY,OAAO;IACjB,SAAS;IACT,OAAO,MAAM;IACb,iBAAiB;IACjB,IAAI,KAAK;IACT,eAAe;IACf,YAAY,MAAM;IAClB,UAAU;IACV,SAAS,MAAM;IACf,YAAY;IACZ,SAAS,MAAM;IACf,aAAa;IACb,gBAAgB,MAAM;IACtB,cAAc;IACd,cAAc,MAAM;CACrB;AAID;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,4BAA4B;IAC5B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG;IAChD,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC;CAAG;AAI3F;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,MAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAEhF;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,GAAE,MAAe,EAAE,IAAI,GAAE,MAAqB,EAAE,IAAI,GAAE,CAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAE1H;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,IAAI,EAAE,CAAC,EAAE,EACT,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EACrH,OAAO,GAAE,MAAe,GACvB,WAAW,CAAC;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,UAAU,CAAA;CAAE,CAAC,CAE3D"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============ 统一 API 响应格式类型 ============
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BizCode = void 0;
|
|
5
|
+
exports.success = success;
|
|
6
|
+
exports.fail = fail;
|
|
7
|
+
exports.pageSuccess = pageSuccess;
|
|
8
|
+
/**
|
|
9
|
+
* 业务状态码
|
|
10
|
+
*
|
|
11
|
+
* 与 HTTP 状态码分离,用于表达业务层面的结果状态。
|
|
12
|
+
* SUCCESS 使用 200 对齐前端约定(前端以 code === 200 判断成功)。
|
|
13
|
+
*/
|
|
14
|
+
var BizCode;
|
|
15
|
+
(function (BizCode) {
|
|
16
|
+
/** 成功 */
|
|
17
|
+
BizCode[BizCode["SUCCESS"] = 200] = "SUCCESS";
|
|
18
|
+
/** 失败(通用业务错误) */
|
|
19
|
+
BizCode[BizCode["FAIL"] = -1] = "FAIL";
|
|
20
|
+
/** 未认证(未登录) */
|
|
21
|
+
BizCode[BizCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
22
|
+
/** 无权限 */
|
|
23
|
+
BizCode[BizCode["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
24
|
+
/** 资源不存在 */
|
|
25
|
+
BizCode[BizCode["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
26
|
+
/** 参数校验失败 */
|
|
27
|
+
BizCode[BizCode["VALIDATION_ERROR"] = 422] = "VALIDATION_ERROR";
|
|
28
|
+
/** 服务器内部错误 */
|
|
29
|
+
BizCode[BizCode["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
30
|
+
})(BizCode || (exports.BizCode = BizCode = {}));
|
|
31
|
+
// ============ 工厂函数 ============
|
|
32
|
+
/**
|
|
33
|
+
* 构建成功响应
|
|
34
|
+
*/
|
|
35
|
+
function success(data, message = '操作成功') {
|
|
36
|
+
return { code: BizCode.SUCCESS, message, data };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 构建失败响应
|
|
40
|
+
*/
|
|
41
|
+
function fail(message = '操作失败', code = BizCode.FAIL, data = null) {
|
|
42
|
+
return { code, message, data };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 构建分页响应
|
|
46
|
+
*/
|
|
47
|
+
function pageSuccess(list, pagination, message = '查询成功') {
|
|
48
|
+
return { code: BizCode.SUCCESS, message, data: { list, pagination } };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/common/types/response.ts"],"names":[],"mappings":";AAAA,0CAA0C;;;AAqG1C,0BAEC;AAKD,oBAEC;AAKD,kCAMC;AAvHD;;;;;GAKG;AACH,IAAY,OAeX;AAfD,WAAY,OAAO;IACjB,SAAS;IACT,6CAAa,CAAA;IACb,iBAAiB;IACjB,sCAAS,CAAA;IACT,eAAe;IACf,uDAAkB,CAAA;IAClB,UAAU;IACV,iDAAe,CAAA;IACf,YAAY;IACZ,iDAAe,CAAA;IACf,aAAa;IACb,+DAAsB,CAAA;IACtB,cAAc;IACd,2DAAoB,CAAA;AACtB,CAAC,EAfW,OAAO,uBAAP,OAAO,QAelB;AAyED,iCAAiC;AAEjC;;GAEG;AACH,SAAgB,OAAO,CAAI,IAAO,EAAE,UAAkB,MAAM;IAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,IAAI,CAAW,UAAkB,MAAM,EAAE,OAAe,OAAO,CAAC,IAAI,EAAE,OAAU,IAAS;IACvG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,IAAS,EACT,UAAqH,EACrH,UAAkB,MAAM;IAExB,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 排序方向
|
|
3
|
+
*/
|
|
4
|
+
export declare enum SortDirection {
|
|
5
|
+
/** 升序 */
|
|
6
|
+
ASC = "asc",
|
|
7
|
+
/** 降序 */
|
|
8
|
+
DESC = "desc"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 排序参数(单字段排序)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const sort: SortParams = { field: 'createdAt', direction: SortDirection.DESC };
|
|
16
|
+
* // 等价于 Prisma 的 orderBy: { createdAt: 'desc' }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export interface SortParams {
|
|
20
|
+
/** 排序字段名(对应模型属性名) */
|
|
21
|
+
field: string;
|
|
22
|
+
/** 排序方向 */
|
|
23
|
+
direction: SortDirection | 'asc' | 'desc';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 排序参数(可选,用于接收请求参数)
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* // GET /api/users?sortField=createdAt&sortDirection=desc
|
|
31
|
+
* const params: OptionalSortParams = { sortField: 'createdAt', sortDirection: 'desc' };
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export interface OptionalSortParams {
|
|
35
|
+
/** 排序字段名 */
|
|
36
|
+
sortField?: string;
|
|
37
|
+
/** 排序方向 */
|
|
38
|
+
sortDirection?: SortDirection | 'asc' | 'desc';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 多字段排序参数
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const sorts: MultiSortParams = [
|
|
46
|
+
* { field: 'status', direction: SortDirection.ASC },
|
|
47
|
+
* { field: 'createdAt', direction: SortDirection.DESC },
|
|
48
|
+
* ];
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export type MultiSortParams = SortParams[];
|
|
52
|
+
/**
|
|
53
|
+
* 从可选排序参数中解析出标准排序参数(填充默认值)
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveSort(params?: OptionalSortParams, defaultField?: string, defaultDirection?: SortDirection | 'asc' | 'desc'): SortParams;
|
|
56
|
+
/**
|
|
57
|
+
* 将 SortParams 转换为 Prisma 的 orderBy 格式
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* const sort = resolveSort({ sortField: 'name', sortDirection: 'asc' });
|
|
62
|
+
* const orderBy = toPrismaOrderBy(sort);
|
|
63
|
+
* // { name: 'asc' }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function toPrismaOrderBy(sort: SortParams): Record<string, string>;
|
|
67
|
+
/**
|
|
68
|
+
* 将多个 SortParams 转换为 Prisma 的 orderBy 数组格式
|
|
69
|
+
*/
|
|
70
|
+
export declare function toPrismaMultiOrderBy(sorts: MultiSortParams): Record<string, string>[];
|
|
71
|
+
//# sourceMappingURL=sort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../src/common/types/sort.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,aAAa;IACvB,SAAS;IACT,GAAG,QAAQ;IACX,SAAS;IACT,IAAI,SAAS;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,SAAS,EAAE,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,aAAa,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;CAChD;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,EAAE,CAAC;AAE3C;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,YAAY,GAAE,MAAoB,EAClC,gBAAgB,GAAE,aAAa,GAAG,KAAK,GAAG,MAA2B,GACpE,UAAU,CAKZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAErF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============ 排序相关类型定义 ============
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SortDirection = void 0;
|
|
5
|
+
exports.resolveSort = resolveSort;
|
|
6
|
+
exports.toPrismaOrderBy = toPrismaOrderBy;
|
|
7
|
+
exports.toPrismaMultiOrderBy = toPrismaMultiOrderBy;
|
|
8
|
+
/**
|
|
9
|
+
* 排序方向
|
|
10
|
+
*/
|
|
11
|
+
var SortDirection;
|
|
12
|
+
(function (SortDirection) {
|
|
13
|
+
/** 升序 */
|
|
14
|
+
SortDirection["ASC"] = "asc";
|
|
15
|
+
/** 降序 */
|
|
16
|
+
SortDirection["DESC"] = "desc";
|
|
17
|
+
})(SortDirection || (exports.SortDirection = SortDirection = {}));
|
|
18
|
+
/**
|
|
19
|
+
* 从可选排序参数中解析出标准排序参数(填充默认值)
|
|
20
|
+
*/
|
|
21
|
+
function resolveSort(params, defaultField = 'createdAt', defaultDirection = SortDirection.DESC) {
|
|
22
|
+
return {
|
|
23
|
+
field: params?.sortField || defaultField,
|
|
24
|
+
direction: params?.sortDirection || defaultDirection,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 将 SortParams 转换为 Prisma 的 orderBy 格式
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* const sort = resolveSort({ sortField: 'name', sortDirection: 'asc' });
|
|
33
|
+
* const orderBy = toPrismaOrderBy(sort);
|
|
34
|
+
* // { name: 'asc' }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
function toPrismaOrderBy(sort) {
|
|
38
|
+
return { [sort.field]: sort.direction };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 将多个 SortParams 转换为 Prisma 的 orderBy 数组格式
|
|
42
|
+
*/
|
|
43
|
+
function toPrismaMultiOrderBy(sorts) {
|
|
44
|
+
return sorts.map(sort => ({ [sort.field]: sort.direction }));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../src/common/types/sort.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AA4DrC,kCASC;AAYD,0CAEC;AAKD,oDAEC;AAxFD;;GAEG;AACH,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,SAAS;IACT,4BAAW,CAAA;IACX,SAAS;IACT,8BAAa,CAAA;AACf,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AA+CD;;GAEG;AACH,SAAgB,WAAW,CACzB,MAA2B,EAC3B,eAAuB,WAAW,EAClC,mBAAmD,aAAa,CAAC,IAAI;IAErE,OAAO;QACL,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,YAAY;QACxC,SAAS,EAAE,MAAM,EAAE,aAAa,IAAI,gBAAgB;KACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAAC,IAAgB;IAC9C,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,KAAsB;IACzD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PrismaClient } from '@prisma/client';
|
|
2
|
+
/**
|
|
3
|
+
* 创建(复用)PrismaClient 单例。
|
|
4
|
+
*
|
|
5
|
+
* 系统服务与用户业务共享同一实例,避免连接数翻倍。
|
|
6
|
+
* 用户可在项目启动时调用一次 createPrismaClient() 获取实例。
|
|
7
|
+
*/
|
|
8
|
+
export declare function createPrismaClient(): PrismaClient;
|
|
9
|
+
/** 框架内部共享实例(系统模块直接使用) */
|
|
10
|
+
export declare const prisma: PrismaClient<import(".prisma/client").Prisma.PrismaClientOptions, never, import("@prisma/client/runtime/library").DefaultArgs>;
|
|
11
|
+
export default prisma;
|
|
12
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/config/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAOjD;AAED,yBAAyB;AACzB,eAAO,MAAM,MAAM,gIAAuB,CAAC;AAE3C,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prisma = void 0;
|
|
4
|
+
exports.createPrismaClient = createPrismaClient;
|
|
5
|
+
const client_1 = require("@prisma/client");
|
|
6
|
+
let instance = null;
|
|
7
|
+
/**
|
|
8
|
+
* 创建(复用)PrismaClient 单例。
|
|
9
|
+
*
|
|
10
|
+
* 系统服务与用户业务共享同一实例,避免连接数翻倍。
|
|
11
|
+
* 用户可在项目启动时调用一次 createPrismaClient() 获取实例。
|
|
12
|
+
*/
|
|
13
|
+
function createPrismaClient() {
|
|
14
|
+
if (!instance) {
|
|
15
|
+
instance = new client_1.PrismaClient({
|
|
16
|
+
log: process.env.NODE_ENV === 'development' ? ['query'] : [],
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return instance;
|
|
20
|
+
}
|
|
21
|
+
/** 框架内部共享实例(系统模块直接使用) */
|
|
22
|
+
exports.prisma = createPrismaClient();
|
|
23
|
+
exports.default = exports.prisma;
|
|
24
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/config/database.ts"],"names":[],"mappings":";;;AAUA,gDAOC;AAjBD,2CAA8C;AAE9C,IAAI,QAAQ,GAAwB,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,SAAgB,kBAAkB;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,qBAAY,CAAC;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;SAC7D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yBAAyB;AACZ,QAAA,MAAM,GAAG,kBAAkB,EAAE,CAAC;AAE3C,kBAAe,cAAM,CAAC"}
|