- 9 个端点:目录快照(asOf)/单参数历史/变更批次提交与撤回/批次分页与明细/两日期对比/Excel 导出/计算预览 - submit_change 全量前置校验(注册表/维度岗位/取值域/同批去重)→ 建批次 → 逐项留痕(旧值取提交时生效值) - 撤回:FOR UPDATE 锁行 + 已生效禁撤,删除后解析自然回退;同日多次变更取最新留痕 - 预览按岗位模板分派公式(经理聚合口径明确拒绝),出参含所用参数与生效时点;导出走 openpyxl - ECharts 决策记录:前端统计图使用 echarts(用户指定) Co-Authored-By: Claude Code <noreply@anthropic.com>
62 lines
2.1 KiB
Python
62 lines
2.1 KiB
Python
"""全局常量。
|
||
|
||
集中定义 Redis 键模板、响应码、角色编码等跨模块共享的字面量,
|
||
避免各处硬编码字符串导致拼写漂移。
|
||
"""
|
||
|
||
# ===== 响应码(与 HTTP 状态码保持一致,见 PROJECT_STANDARDS 第 9 节)=====
|
||
CODE_SUCCESS = 200
|
||
CODE_BAD_REQUEST = 400
|
||
CODE_UNAUTHORIZED = 401
|
||
CODE_FORBIDDEN = 403
|
||
CODE_NOT_FOUND = 404
|
||
CODE_SERVER_ERROR = 500
|
||
|
||
# ===== Redis 键模板 =====
|
||
# 规范第 6 节:键格式 {项目缩写}:{业务}:{标识},项目缩写为 ys
|
||
REDIS_KEY_CAPTCHA = "ys:captcha:{captcha_id}"
|
||
REDIS_KEY_LOGIN_FAIL = "ys:login:fail:{username}"
|
||
REDIS_KEY_TOKEN_BLACKLIST = "ys:token:blacklist:{jti}"
|
||
|
||
# ===== JWT =====
|
||
JWT_ALGORITHM = "HS256"
|
||
TOKEN_TYPE_BEARER = "Bearer"
|
||
|
||
# ===== 角色编码(与 db/migration 初始化数据保持一致)=====
|
||
ROLE_ADMIN = "admin"
|
||
ROLE_USER = "user"
|
||
|
||
# ===== 密码策略 =====
|
||
# bcrypt 5.0 起对超过 72 字节的密码由「静默截断」改为「抛 ValueError」,
|
||
# 而中文一个字符占 3 字节,因此必须按字节数校验,按字符数校验是错的。
|
||
PASSWORD_MIN_BYTES = 8
|
||
PASSWORD_MAX_BYTES = 72
|
||
|
||
# ===== 验证码 =====
|
||
# 剔除易混淆字符 0/O/1/I/l,降低人工识别错误率
|
||
CAPTCHA_CHARSET = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ"
|
||
CAPTCHA_LENGTH = 4
|
||
|
||
# ===== 业务岗位编码(与 db/migration 种子一致,business_roles.role_code)=====
|
||
BUSINESS_ROLE_SALESPERSON = "salesperson"
|
||
BUSINESS_ROLE_SALES_MANAGER = "sales_manager"
|
||
BUSINESS_ROLE_INFO_OFFICER = "info_officer"
|
||
|
||
# ===== 产品类别码(与 param_values.dimension_value 口径一致)=====
|
||
PRODUCT_CATEGORY_MUNICIPAL_WATER = "municipal_water"
|
||
PRODUCT_CATEGORY_RAIL_TRANSIT = "rail_transit"
|
||
|
||
# ===== 操作日志词表(operation_logs 的 module / action 取值)=====
|
||
# 集中定义避免各处硬编码导致日志值漂移;前端筛选下拉项与此保持一致
|
||
MODULE_USER = "用户管理"
|
||
MODULE_ROLE = "角色管理"
|
||
MODULE_BUSINESS_ROLE = "岗位角色"
|
||
MODULE_PARAM = "计提参数"
|
||
|
||
ACTION_CREATE = "新增"
|
||
ACTION_UPDATE = "修改"
|
||
ACTION_DELETE = "删除"
|
||
ACTION_RESET_PASSWORD = "重置密码"
|
||
ACTION_ENABLE = "启用"
|
||
ACTION_DISABLE = "禁用"
|