chore: 更新项目配置和核心服务
- 更新package.json和jest配置 - 更新main.ts启动配置 - 完善用户管理和数据库服务 - 更新安全核心模块 - 优化Zulip核心服务 配置改进: - 统一项目依赖管理 - 优化测试配置 - 完善服务模块化架构
This commit is contained in:
182
src/core/db/users/users.constants.ts
Normal file
182
src/core/db/users/users.constants.ts
Normal file
@@ -0,0 +1,182 @@
|
||||
/**
|
||||
* 用户模块常量定义
|
||||
*
|
||||
* 功能描述:
|
||||
* - 定义用户模块中使用的常量值
|
||||
* - 避免魔法数字,提高代码可维护性
|
||||
* - 集中管理配置参数
|
||||
*
|
||||
* 最近修改:
|
||||
* - 2026-01-09: 代码质量优化 - 提取魔法数字为常量定义 (修改者: moyin)
|
||||
*
|
||||
* @author moyin
|
||||
* @version 1.0.0
|
||||
* @since 2026-01-09
|
||||
* @lastModified 2026-01-09
|
||||
*/
|
||||
|
||||
import { ValidationError } from 'class-validator';
|
||||
|
||||
/**
|
||||
* 用户角色常量
|
||||
*/
|
||||
export const USER_ROLES = {
|
||||
/** 普通用户角色 */
|
||||
NORMAL_USER: 1,
|
||||
/** 管理员角色 */
|
||||
ADMIN: 9
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* 字段长度限制常量
|
||||
*/
|
||||
export const FIELD_LIMITS = {
|
||||
/** 用户名最大长度 */
|
||||
USERNAME_MAX_LENGTH: 50,
|
||||
/** 昵称最大长度 */
|
||||
NICKNAME_MAX_LENGTH: 50,
|
||||
/** 邮箱最大长度 */
|
||||
EMAIL_MAX_LENGTH: 100,
|
||||
/** 手机号最大长度 */
|
||||
PHONE_MAX_LENGTH: 30,
|
||||
/** GitHub ID最大长度 */
|
||||
GITHUB_ID_MAX_LENGTH: 100,
|
||||
/** 头像URL最大长度 */
|
||||
AVATAR_URL_MAX_LENGTH: 255,
|
||||
/** 密码哈希最大长度 */
|
||||
PASSWORD_HASH_MAX_LENGTH: 255,
|
||||
/** 用户状态最大长度 */
|
||||
STATUS_MAX_LENGTH: 20
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* 查询限制常量
|
||||
*/
|
||||
export const QUERY_LIMITS = {
|
||||
/** 默认查询限制 */
|
||||
DEFAULT_LIMIT: 100,
|
||||
/** 默认搜索限制 */
|
||||
DEFAULT_SEARCH_LIMIT: 20,
|
||||
/** 最大查询限制 */
|
||||
MAX_LIMIT: 1000
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* 系统配置常量
|
||||
*/
|
||||
export const SYSTEM_CONFIG = {
|
||||
/** ID生成超时时间(毫秒) */
|
||||
ID_GENERATION_TIMEOUT: 5000,
|
||||
/** 锁等待间隔(毫秒) */
|
||||
LOCK_WAIT_INTERVAL: 1
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* 数据库常量
|
||||
*/
|
||||
export const DATABASE_CONSTANTS = {
|
||||
/** 排序方向 */
|
||||
ORDER_DESC: 'DESC' as const,
|
||||
ORDER_ASC: 'ASC' as const,
|
||||
/** 数据库默认值 */
|
||||
CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP' as const,
|
||||
/** 锁键名 */
|
||||
ID_GENERATION_LOCK_KEY: 'id_generation' as const
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* 测试常量
|
||||
*/
|
||||
export const TEST_CONSTANTS = {
|
||||
/** 测试用的不存在用户ID */
|
||||
NON_EXISTENT_USER_ID: 99999,
|
||||
/** 测试用的无效角色 */
|
||||
INVALID_ROLE: 999,
|
||||
/** 测试用的用户名长度限制 */
|
||||
USERNAME_LENGTH_LIMIT: 51,
|
||||
/** 测试用的批量操作数量 */
|
||||
BATCH_TEST_SIZE: 50,
|
||||
/** 测试用的性能测试数量 */
|
||||
PERFORMANCE_TEST_SIZE: 50,
|
||||
/** 测试用的分页大小 */
|
||||
TEST_PAGE_SIZE: 20,
|
||||
/** 测试用的查询偏移量 */
|
||||
TEST_OFFSET: 10
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* 错误消息常量
|
||||
*/
|
||||
export const ERROR_MESSAGES = {
|
||||
/** 用户创建失败 */
|
||||
USER_CREATE_FAILED: '用户创建失败,请稍后重试',
|
||||
/** 用户更新失败 */
|
||||
USER_UPDATE_FAILED: '用户更新失败,请稍后重试',
|
||||
/** 用户删除失败 */
|
||||
USER_DELETE_FAILED: '用户删除失败,请稍后重试',
|
||||
/** 用户不存在 */
|
||||
USER_NOT_FOUND: '用户不存在',
|
||||
/** 数据验证失败 */
|
||||
VALIDATION_FAILED: '数据验证失败',
|
||||
/** ID生成超时 */
|
||||
ID_GENERATION_TIMEOUT: 'ID生成超时,可能存在死锁',
|
||||
/** 用户名已存在 */
|
||||
USERNAME_EXISTS: '用户名已存在',
|
||||
/** 邮箱已存在 */
|
||||
EMAIL_EXISTS: '邮箱已存在',
|
||||
/** 手机号已存在 */
|
||||
PHONE_EXISTS: '手机号已存在',
|
||||
/** GitHub ID已存在 */
|
||||
GITHUB_ID_EXISTS: 'GitHub ID已存在'
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* 性能监控工具类
|
||||
*/
|
||||
export class PerformanceMonitor {
|
||||
private startTime: number;
|
||||
|
||||
constructor() {
|
||||
this.startTime = Date.now();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取执行时长
|
||||
* @returns 执行时长(毫秒)
|
||||
*/
|
||||
getDuration(): number {
|
||||
return Date.now() - this.startTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置计时器
|
||||
*/
|
||||
reset(): void {
|
||||
this.startTime = Date.now();
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建新的性能监控实例
|
||||
* @returns 性能监控实例
|
||||
*/
|
||||
static create(): PerformanceMonitor {
|
||||
return new PerformanceMonitor();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证工具类
|
||||
*/
|
||||
export class ValidationUtils {
|
||||
/**
|
||||
* 格式化验证错误消息
|
||||
*
|
||||
* @param validationErrors 验证错误数组
|
||||
* @returns 格式化后的错误消息字符串
|
||||
*/
|
||||
static formatValidationErrors(validationErrors: ValidationError[]): string {
|
||||
return validationErrors.map(error =>
|
||||
Object.values(error.constraints || {}).join(', ')
|
||||
).join('; ');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user