27 KiB
27 KiB
外部专家注册模块
| 文档名称 | 智慧招标平台(STP)外部专家注册模块详细设计 |
|---|---|
| 文档版本 | V1.1 |
| 编制日期 | 2026-06-29 |
| 关联文档 | 《需求分析说明书 V1.4》《评委管理规定》《SRM 与 STP 数据交换接口方案说明书》 |
1. 模块概述
1.1 建设目标
建立面向社会外部评标专家的在线注册、准入审核与档案管理体系,实现专家信息的结构化采集、AI辅助资质核验,并与后续的专家抽取、智能匹配、在线评标、劳务报酬结算全流程贯通。
1.2 设计原则
| 原则 | 说明 |
|---|---|
| 准入严控 | 严格遵循《评委管理规定》4.1/4.2要求,设置多级审核(AI初筛+人工复核)。 |
| 信息完备 | 采集字段覆盖专业能力、执业资格、收款账户等全维度。 |
| 隐私保护 | 身份证号、手机号、银行账户等敏感信息采用字段级加密存储(内存级密钥)。 |
| 智能提效 | AI自动识别证件、校验真伪、关联风险图谱,大幅降低人工审核成本。 |
| 统一身份 | 注册完成后自动生成STP平台账号,支持手机号/邮箱登录,无需二次注册。 |
1.3 适用角色与场景
| 角色 | 场景 |
|---|---|
| 外部专家申请人 | 通过招标门户“专家注册”入口提交申请,查询审核进度。 |
| 专家管理员(招标专员) | 在后台审核专家资料、激活/驳回/冻结专家账户。 |
| 合规审计人员 | 查阅专家注册审计轨迹、关联关系图谱。 |
| AI 审核服务 | 自动执行OCR识别、证件验真、利益冲突初筛(仅作后台参考,不要求专家主动声明)。 |
2. 页面布局与 UI 设计
2.1 整体注册流程步骤条(SVG 线框图 - 顶部引导)
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 120" font-family="'Microsoft YaHei', sans-serif">
<rect width="1000" height="120" fill="#f8f9fc" rx="8"/>
<!-- 步骤条背景 -->
<rect x="50" y="40" width="900" height="40" rx="20" fill="#fff" stroke="#e0e4ec"/>
<!-- 步骤1:已激活 -->
<circle cx="200" cy="60" r="18" fill="#c2185b"/>
<text x="200" y="66" text-anchor="middle" font-size="14" fill="#fff" font-weight="bold">1</text>
<text x="200" y="100" text-anchor="middle" font-size="13" fill="#c2185b" font-weight="bold">基本信息</text>
<!-- 连接线1 -->
<line x1="218" y1="60" x2="292" y2="60" stroke="#c2185b" stroke-width="3"/>
<!-- 步骤2:进行中 -->
<circle cx="310" cy="60" r="18" fill="#c2185b"/>
<text x="310" y="66" text-anchor="middle" font-size="14" fill="#fff" font-weight="bold">2</text>
<text x="310" y="100" text-anchor="middle" font-size="13" fill="#c2185b" font-weight="bold">专业资质</text>
<!-- 连接线2 -->
<line x1="328" y1="60" x2="402" y2="60" stroke="#e0e4ec" stroke-width="3"/>
<!-- 步骤3:未开始 -->
<circle cx="420" cy="60" r="18" fill="#e0e4ec"/>
<text x="420" y="66" text-anchor="middle" font-size="14" fill="#8895aa">3</text>
<text x="420" y="100" text-anchor="middle" font-size="13" fill="#8895aa">收款账户</text>
<!-- 连接线3 -->
<line x1="438" y1="60" x2="512" y2="60" stroke="#e0e4ec" stroke-width="3"/>
<!-- 步骤4 -->
<circle cx="530" cy="60" r="18" fill="#e0e4ec"/>
<text x="530" y="66" text-anchor="middle" font-size="14" fill="#8895aa">4</text>
<text x="530" y="100" text-anchor="middle" font-size="13" fill="#8895aa">提交审核</text>
<!-- 提示文字 -->
<text x="900" y="35" text-anchor="end" font-size="12" fill="#8895aa">* 带红色星号均为必填项</text>
</svg>
2.2 注册主表单页面(SVG 线框图 - 以“基本信息”页为例)
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1100 900" font-family="'Microsoft YaHei', 'PingFang SC', sans-serif">
<defs>
<filter id="shadowLight" x="-2%" y="-2%" width="104%" height="104%">
<feDropShadow dx="0" dy="4" stdDeviation="8" flood-color="#000" flood-opacity="0.04"/>
</filter>
<linearGradient id="brandGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#c2185b"/>
<stop offset="100%" stop-color="#e91e63"/>
</linearGradient>
</defs>
<!-- 背景 -->
<rect width="1100" height="900" fill="#f5f7fa"/>
<!-- 主卡片 -->
<rect x="80" y="30" width="940" height="840" rx="16" fill="#fff" filter="url(#shadowLight)"/>
<!-- 标题区 -->
<text x="120" y="80" font-size="22" font-weight="bold" fill="#1a2332">外部专家注册</text>
<text x="120" y="108" font-size="14" fill="#8895aa">请完整填写以下信息,所有数据将受到严格加密保护</text>
<line x1="120" y1="125" x2="980" y2="125" stroke="#f0f2f7" stroke-width="2"/>
<!-- ===== 第一行:姓名 + 性别 ===== -->
<text x="120" y="170" font-size="14" fill="#4a5568">真实姓名 <tspan fill="#e91e63">*</tspan></text>
<rect x="120" y="180" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="135" y="206" font-size="14" fill="#b0bbcc">请输入中文姓名</text>
<text x="430" y="170" font-size="14" fill="#4a5568">性别 <tspan fill="#e91e63">*</tspan></text>
<rect x="430" y="180" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="445" y="206" font-size="14" fill="#b0bbcc">请选择</text>
<path d="M 670 200 L 678 208 L 686 200" stroke="#b0bbcc" stroke-width="2" fill="none"/>
<!-- ===== 第二行:身份证号(脱敏提示) ===== -->
<text x="120" y="250" font-size="14" fill="#4a5568">身份证号码 <tspan fill="#e91e63">*</tspan></text>
<rect x="120" y="260" width="420" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="135" y="286" font-size="14" fill="#b0bbcc">请输入18位身份证号</text>
<text x="560" y="286" font-size="12" fill="#8895aa">🔒 将使用AES-256加密存储</text>
<!-- ===== 第三行:出生日期(自动计算) ===== -->
<text x="120" y="330" font-size="14" fill="#4a5568">出生日期</text>
<rect x="120" y="340" width="260" height="40" rx="6" fill="#f5f6fa" stroke="#e0e4ec"/>
<text x="135" y="366" font-size="14" fill="#b0bbcc">由身份证自动识别</text>
<text x="430" y="330" font-size="14" fill="#4a5568">年龄</text>
<rect x="430" y="340" width="260" height="40" rx="6" fill="#f5f6fa" stroke="#e0e4ec"/>
<text x="445" y="366" font-size="14" fill="#b0bbcc">自动计算</text>
<!-- ===== 第四行:手机号 + 邮箱 ===== -->
<text x="120" y="410" font-size="14" fill="#4a5568">手机号码 <tspan fill="#e91e63">*</tspan></text>
<rect x="120" y="420" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="135" y="446" font-size="14" fill="#b0bbcc">请输入手机号</text>
<text x="430" y="410" font-size="14" fill="#4a5568">电子邮箱 <tspan fill="#e91e63">*</tspan></text>
<rect x="430" y="420" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="445" y="446" font-size="14" fill="#b0bbcc">请输入常用邮箱</text>
<!-- ===== 第五行:工作单位 + 职务 ===== -->
<text x="120" y="490" font-size="14" fill="#4a5568">工作单位</text>
<rect x="120" y="500" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="135" y="526" font-size="14" fill="#b0bbcc">请输入单位全称</text>
<text x="430" y="490" font-size="14" fill="#4a5568">现从事专业 <tspan fill="#e91e63">*</tspan></text>
<rect x="430" y="500" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="445" y="526" font-size="14" fill="#b0bbcc">如:化工工艺、设备管理</text>
<!-- ===== 第六行:职称 ===== -->
<text x="120" y="570" font-size="14" fill="#4a5568">技术职称 <tspan fill="#e91e63">*</tspan></text>
<rect x="120" y="580" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="135" y="606" font-size="14" fill="#b0bbcc">高级/副高级/中级/初级</text>
<rect x="440" y="580" width="260" height="40" rx="6" fill="#fafbfc" stroke="#e0e4ec"/>
<text x="455" y="606" font-size="14" fill="#b0bbcc">职称专业(如:化工工程)</text>
<!-- ===== 第七行:文件上传(资质证书) ===== -->
<text x="120" y="660" font-size="14" fill="#4a5568">职称/资质证书扫描件 <tspan fill="#e91e63">*</tspan></text>
<rect x="120" y="670" width="560" height="70" rx="6" stroke-dasharray="6,4" fill="#fafbfc" stroke="#c2185b"/>
<text x="400" y="700" text-anchor="middle" font-size="14" fill="#c2185b">📄 点击上传或拖拽文件(支持 PDF/JPG/PNG,≤20MB)</text>
<text x="400" y="725" text-anchor="middle" font-size="12" fill="#8895aa">已上传:职称证.pdf (2.3MB) <tspan fill="#4caf50">✅ 识别完成</tspan></text>
<!-- ===== 底部按钮 ===== -->
<line x1="120" y1="770" x2="980" y2="770" stroke="#f0f2f7" stroke-width="2"/>
<rect x="740" y="790" width="120" height="40" rx="6" fill="#e0e4ec"/>
<text x="800" y="816" text-anchor="middle" font-size="14" fill="#8895aa">上一步</text>
<rect x="880" y="790" width="140" height="40" rx="6" fill="url(#brandGrad)"/>
<text x="950" y="816" text-anchor="middle" font-size="14" font-weight="bold" fill="#fff">下一步 →</text>
<!-- 右侧信息浮窗 -->
<rect x="720" y="140" width="260" height="180" rx="8" fill="#fff3e0" stroke="#ffcc80"/>
<text x="740" y="168" font-size="14" font-weight="bold" fill="#e65100">📌 注册须知</text>
<text x="740" y="195" font-size="12" fill="#bf360c">1. 所有信息须与身份证及职称证书一致</text>
<text x="740" y="218" font-size="12" fill="#bf360c">2. 集团公司将对信息进行真实性核验</text>
<text x="740" y="241" font-size="12" fill="#bf360c">3. 入库专家须遵守《评委管理规定》</text>
<text x="740" y="264" font-size="12" fill="#bf360c">4. 个人信息变更需及时在线更新</text>
</svg>
3. 详细业务流程
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#c2185b','primaryTextColor':'#fff','primaryBorderColor':'#880e4f','lineColor':'#555','secondaryColor':'#fce4ec'}}}%%
flowchart TD
subgraph 专家申请人端
A[访问招标门户] --> B[点击“专家注册”]
B --> C[填写基本信息<br>(姓名/身份证/手机/邮箱等)]
C --> D[填写专业资质<br>(职称/执业资格/工作经历)]
D --> E[签署评标纪律承诺书]
E --> F[填写收款账户信息]
F --> G[提交注册申请]
G --> H[查看审核状态]
H -- 驳回 --> I[根据驳回原因修改信息]
I --> G
H -- 通过 --> J[收到激活通知邮件/短信]
J --> K[首次登录设置密码]
K --> L[进入专家工作台]
end
subgraph STP平台后端
STP1[接收注册申请] --> STP2[触发AI初审]
STP2 --> STP3{AI检查项}
STP3 -->|OCR识别证件| STP4[提取姓名/身份证号/有效期]
STP3 -->|真伪核验| STP5[对接公安部/学信网/天眼查]
STP3 -->|利益冲突图谱(参考)| STP6[扫描与黑名单/关联企业关系]
STP4 --> STP7[生成AI审核报告]
STP5 --> STP7
STP6 --> STP7
STP7 --> STP8{AI评估结果}
STP8 -->|高风险/不通过| STP9[自动驳回 + 发送原因]
STP8 -->|中风险/待人工| STP10[推送至专家管理员待办]
STP8 -->|低风险/通过| STP11[自动进入人工抽检池]
STP10 --> STP12[人工复核资料]
STP11 --> STP12
STP12 --> STP13{复核决定}
STP13 -->|驳回| STP14[记录驳回原因 + 通知专家]
STP13 -->|需补充材料| STP15[发起补充通知]
STP13 -->|通过| STP16[生成专家档案编号]
STP16 --> STP17[写入专家库主数据]
STP17 --> STP18[自动创建STP登录账号]
STP18 --> STP19[发送激活通知]
STP19 --> STP20[记录全流程审计日志]
end
subgraph 外部系统
EXT1[公安身份认证库]
EXT2[学信网/职称系统]
EXT3[天眼查/企查查]
EXT4[邮件短信网关]
end
STP5 -.-> EXT1
STP5 -.-> EXT2
STP6 -.-> EXT3
STP19 -.-> EXT4
H -- 补充材料 --> STP15
STP14 --> H
4. 核心流程时序图
sequenceDiagram
participant U as 专家申请人
participant FE as STP前端
participant GW as API网关
participant RegSvc as 注册服务
participant AISvc as AI审核服务
participant IDSvc as 身份认证服务(外部)
participant DB as 专家库数据库
participant Admin as 专家管理员
participant Notify as 通知服务
U->>FE: 填写注册表单 + 上传证件
FE->>FE: 前端校验(非空/手机格式/身份证校验位)
FE->>GW: POST /api/v1/expert/register
GW->>RegSvc: 转发请求
RegSvc->>DB: 校验身份证号是否已注册(防重)
alt 已存在
DB-->>RegSvc: 记录已存在
RegSvc-->>FE: 409 Conflict { message: "该身份证已注册" }
else 未注册
RegSvc->>AISvc: 异步启动AI审核任务(OCR+验真+图谱)
RegSvc-->>FE: 202 Accepted { applicationId: "EXP_2024001" }
FE-->>U: 显示“提交成功,审核中...”
AISvc->>IDSvc: 调用公安接口校验身份证号与姓名
IDSvc-->>AISvc: 实名验证通过/失败
AISvc->>AISvc: OCR识别职称证书关键字段
AISvc->>AISvc: 扫描企业关联图谱(作为利益冲突参考,不要求专家声明)
AISvc-->>RegSvc: 返回AI审核结论(Pass/Review/Reject)
alt AI高风险或敏感
RegSvc->>DB: 状态更新为 PENDING_MANUAL
RegSvc->>Admin: 推送待办任务(站内+邮件)
Admin->>RegSvc: POST /api/v1/expert/audit { action: approve/reject }
else AI低风险
RegSvc->>DB: 状态更新为 APPROVED(自动)
end
RegSvc->>DB: 生成专家档案(EXP_XXXXX)
RegSvc->>RegSvc: 创建STP登录账号(默认手机号+随机密码)
RegSvc->>Notify: 发送激活通知(含账号及首次登录链接)
Notify-->>U: 短信+邮件
U->>FE: 点击激活链接
FE->>RegSvc: POST /api/v1/expert/activate { password }
RegSvc->>DB: 更新密码哈希(Argon2id)
RegSvc-->>FE: 激活成功,跳转至专家工作台
end
5. 专家激活流程
以下是专家激活设置密码的详细流程图,清晰展示了从审核通过到账号激活的全过程:
flowchart TD
A[人工/AI审核通过] --> B[系统自动创建STP账号]
B --> C[生成随机临时密码(仅系统内部占位)]
C --> D[发送激活通知邮件/短信<br>(内含激活链接,不含密码)]
D --> E[专家收到通知,点击激活链接]
E --> F[跳转至激活页面]
F --> G[专家填写新密码及确认密码]
G --> H{前端校验}
H -->|格式不符| I[提示密码不满足安全策略<br>(长度≥8,含大小写、数字、特殊字符)]
I --> G
H -->|通过| J[提交激活请求<br>POST /api/v1/expert/activate]
J --> K[后端校验链接有效性及过期时间]
K -->|无效/过期| L[提示链接失效,重新发送]
L --> E
K -->|有效| M[对密码进行Argon2id哈希加密]
M --> N[更新数据库:<br>密码哈希 + 状态ACTIVATED + 激活时间]
N --> O[记录审计日志]
O --> P[返回激活成功]
P --> Q[专家跳转至专家工作台]
Q --> R[流程结束]
style A fill:#e8f5e9,stroke:#388e3c
style R fill:#e0e0e0,stroke:#616161
style C fill:#fff3e0,stroke:#ff9800
style M fill:#fce4ec,stroke:#c2185b
流程要点说明:
- 随机密码未告知专家:系统生成后仅用于初始化账户,专家通过激活链接自行设置密码,全程无需接触该临时密码。
- 密码安全策略:前端校验密码复杂度(长度、字符类型),后端再次校验并哈希存储(Argon2id)。
- 链接安全性:激活链接包含唯一token,后端校验其有效性与过期时间(通常24小时内有效),防止重放攻击。
- 审计追踪:所有操作(创建账号、发送通知、激活成功)均有日志记录。
6. 数据模型设计
6.1 外部专家主表 t_expert_profile
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
expert_id |
VARCHAR(32) | PK | 专家档案编号(EXP_YYYYMMDD_XXX) |
user_id |
VARCHAR(32) | FK | 关联STP用户账号表(登录凭证) |
real_name |
VARCHAR(64) | NOT NULL | 真实姓名 |
id_card_no |
VARCHAR(256) | NOT NULL, UNIQUE | 身份证号(字段级加密存储) |
gender |
TINYINT | 1-男,2-女 | |
birth_date |
DATE | 出生日期(由身份证提取) | |
phone |
VARCHAR(256) | NOT NULL | 手机号(字段级加密) |
email |
VARCHAR(128) | NOT NULL | 电子邮箱 |
company |
VARCHAR(128) | 工作单位 | |
profession |
VARCHAR(64) | NOT NULL | 从事专业 |
title |
VARCHAR(32) | NOT NULL | 职称等级(高级/副高/中级) |
title_major |
VARCHAR(64) | 职称专业 | |
qualification_files |
JSON | 资质证书文件URL列表(含OCR元数据) | |
bank_name |
VARCHAR(64) | 开户银行 | |
bank_account |
VARCHAR(256) | 银行账号(字段级加密) | |
expertise_tags |
JSON | 擅长领域标签(用于智能匹配) | |
status |
VARCHAR(20) | NOT NULL | DRAFT/PENDING_AI/PENDING_MANUAL/REJECTED/APPROVED/ACTIVATED/LOCKED |
ai_audit_report |
JSON | AI审核报告(含评分、风险点) | |
manual_audit_comment |
TEXT | 人工审核备注 | |
discipline_signed |
BOOLEAN | DEFAULT 0 | 是否签署评标纪律承诺书 |
created_at |
DATETIME | 注册时间 | |
updated_at |
DATETIME | 更新时间 | |
activated_at |
DATETIME | 首次激活时间 |
6.3 审核记录表 t_expert_audit_log
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
audit_id |
VARCHAR(32) | PK | |
expert_id |
VARCHAR(32) | FK | |
auditor |
VARCHAR(64) | 审核人(AI/人工) | |
action |
VARCHAR(20) | APPROVE/REJECT/REQUEST_INFO | |
reason |
TEXT | 原因 | |
attachments |
JSON | 附件URL | |
created_at |
DATETIME |
7. 接口详细定义
7.1 提交注册申请
| 项目 | 内容 |
|---|---|
| 路径 | /api/v1/expert/register |
| 方法 | POST |
| 认证 | 否(公开接口,需图形验证码) |
请求体(部分字段)
{
"realName": "王建国",
"idCardNo": "110101199003074477",
"gender": 1,
"phone": "13800138000",
"email": "wangjianguo@example.com",
"company": "清华大学化工系",
"profession": "化学工程",
"title": "SENIOR", // SENIOR/VICE_SENIOR/MIDDLE/JUNIOR
"titleMajor": "化学工程",
"expertiseTags": ["石油化工", "反应工程", "分离技术"],
"bankName": "中国银行北京分行",
"bankAccount": "6217850000000000",
"qualificationFiles": [
{
"fileName": "professor_cert.pdf",
"fileUrl": "https://oss.stp.com/...",
"ocrResult": { "title": "教授", "issueDate": "2018-06" }
}
],
"disciplineAccepted": true, // 是否同意评标纪律
"captchaToken": "a1b2c3d4"
}
成功响应(异步)
{
"code": "0",
"data": {
"applicationId": "EXP_20260628_001",
"status": "PENDING_AI",
"estimatedTime": "预计24小时内完成初审"
}
}
7.2 查询审核进度
| 项目 | 内容 |
|---|---|
| 路径 | /api/v1/expert/application/status |
| 方法 | GET |
| 参数 | applicationId |
7.3 专家激活
| 项目 | 内容 |
|---|---|
| 路径 | /api/v1/expert/activate |
| 方法 | POST |
请求体
{
"applicationId": "EXP_20260628_001",
"password": "Abcd@2026#",
"confirmPassword": "Abcd@2026#"
}
7.4 后台专家审核(管理员)
| 项目 | 内容 |
|---|---|
| 路径 | /api/v1/admin/expert/audit |
| 方法 | POST |
| 认证 | 需 ADMIN/EXPERT_MANAGER 角色 |
请求体
{
"applicationId": "EXP_20260628_001",
"action": "APPROVE", // APPROVE / REJECT / REQUEST_INFO
"reason": "职称证书已验证,资质符合要求",
"notifyExpert": true
}
8. AI 赋能详细设计
| AI 能力 | 实现方式 | 输出 | 优先级 |
|---|---|---|---|
| 身份证 OCR 解析 | 调用OCR服务(如百度/阿里)提取姓名、号码、有效期,自动回填表单。 | 结构化字段 | P0 |
| 实名认证 | ==对接公安部CTID接口核验身份证号与姓名一致性。== | 通过/不通过 | P0 |
| 职称证书验真 | ==对接人社部/学信网接口(或基于图像防伪特征识别)验证证书真伪。== | 可信度评分 | P1 |
| 专业标签智能推荐 | 根据专家填写的从事专业与历史项目品类,自动匹配并推荐擅长的采购品类标签。 | 标签列表 | P1 |
| AI初审报告生成 | 汇总各项检查结果,生成带评分(0-100)的建议结论(自动通过/人工复核/拒绝)。 | 审核报告 | P0 |
9. 业务规则与异常处理
| 场景 | 规则/处理方式 |
|---|---|
| 身份证号唯一性 | 系统全局唯一,已注册或审核中的身份证不得重复提交。 |
| 手机号/邮箱唯一性 | 同一手机号或邮箱仅能注册一次(支持找回账号)。 |
| 职称等级门槛 | 至少具备中级及以上职称方可入库(《评委管理规定》4.2.1)。 |
| 驳回后重提 | 允许在 30 天内修改后重新提交,保留历史审核记录供查。 |
| 虚假信息处理 | 一经发现虚假注册,永久拉入黑名单,并通报集团内各单位。 |
| 评标纪律签署 | 注册时须同意《评标纪律承诺书》,否则无法提交。 |
| 敏感信息脱敏展示 | 后台管理中,身份证号显示为 110101********4477,银行账号显示为 ******0000。 |
| 数据导出 | 支持按专家状态、专业分类、注册时间段导出加密Excel(需二次审批)。 |
10. 安全与合规设计
| 安全维度 | 落地措施 |
|---|---|
| 传输安全 | 全链路 HTTPS + TLS 1.3,文件上传使用预签名URL直传OSS。 |
| 敏感字段加密 | 身份证、手机号、银行账号使用 AES-256-GCM 应用层字段级加密,DEK内存漂移(见《需求说明书》4.2)。 |
| 防机器人 | 注册提交需通过图形验证码 + 滑动验证(极验/人机识别)。 |
| 密码策略 | 首次激活强制设置密码(长度≥8,含大写、小写、数字、特殊字符)。 |
| 审计日志 | 记录每次提交、审核、激活操作的IP、设备指纹、操作人,写入哈希链防篡改(见《需求说明书》4.8.1)。 |
| 个人信息保护 | 遵循《个人信息保护法》,注册前弹出《隐私政策》与《用户协议》,须勾选同意。 |
11. 通知策略矩阵
| 触发事件 | 通知方式 | 通知对象 | 文案要点 |
|---|---|---|---|
| 提交注册成功 | 站内信 | 申请人 | 已收到申请,预计24小时反馈 |
| AI 审核不通过 | 邮件+短信 | 申请人 | 详细说明不通过原因及修改指引 |
| 转入人工审核 | 站内信+邮件 | 专家管理员 | 新专家待审核,附AI报告摘要 |
| 人工审核通过 | 邮件+短信 | 申请人 | 恭喜通过审核,请点击链接激活账号 |
| 账号激活成功 | 站内信 | 申请人 | 欢迎成为STP评标专家,可开始接受评标任务 |
| 补充材料通知 | 邮件+短信 | 申请人 | 请于X月X日前补充如下材料... |