فهرست منبع

刷脸二次认证

LIJU 1 ماه پیش
والد
کامیت
810fe61238
1فایلهای تغییر یافته به همراه123 افزوده شده و 0 حذف شده
  1. 123 0
      update/2025-10-29.md

+ 123 - 0
update/2025-10-29.md

@@ -0,0 +1,123 @@
+## 2025-10-29 刷脸一致性校验记录表(旁路写入,不影响收费流程)
+
+执行顺序:按段落依次执行;首次建表可跳过“删除表”步骤。
+
+```sql
+-- ============================================
+-- 刷脸一致性校验记录表(旁路写入,不影响收费流程)
+-- ============================================
+
+-- 第一步:如果表已存在,先删除(首次建表可跳过这步)
+IF OBJECT_ID('dbo.t_face_verify_log', 'U') IS NOT NULL
+    DROP TABLE dbo.t_face_verify_log;
+GO
+
+-- 第二步:创建表结构
+CREATE TABLE dbo.t_face_verify_log (
+    -- 主键:自增ID
+    id bigint IDENTITY(1,1) PRIMARY KEY,
+    
+    -- 最终采用身份:face=采用刷脸身份,card=采用社保卡身份(必填)
+    adopted_identity varchar(10) NOT NULL,
+    
+    -- 患者ID:从页面获取的患者编号,可为空
+    patient_id varchar(50) NULL,
+    
+    -- 就诊次数:从页面获取的就诊次数,可为空
+    times int NULL,
+    
+    -- 是否一致:1=社保卡和刷脸身份证号一致,0=不一致,NULL=未完成比对
+    is_match bit NULL,
+    
+    -- 用户操作:go_face=用户选择去刷脸,skip_face=用户跳过刷脸直接结算,continue_with_card=不一致时继续按卡结算,redo=返回重新核验
+    user_action varchar(50) NULL,
+    
+    -- 失败原因:fail=刷脸失败,error=网络异常,cancel=用户取消刷脸
+    reason varchar(50) NULL,
+    
+    -- 社保卡身份证号尾号:仅存储后4位(例如:1234),用于脱敏展示,不存完整身份证号
+    card_tail varchar(8) NULL,
+    
+    -- 刷脸身份证号尾号:仅存储后4位(例如:1234),用于脱敏展示,不存完整身份证号
+    face_tail varchar(8) NULL,
+    
+    -- 实人认证业务流水号:从刷脸接口返回的res.data.data.authNo字段获取,用于追踪刷脸记录
+    auth_no varchar(64) NULL,
+    
+    -- 预留扩展字段:存储JSON格式的额外信息,可为空
+    ext_json nvarchar(max) NULL,
+    
+    -- 创建时间:记录插入时间,默认当前时间
+    created_at datetime NOT NULL DEFAULT GETDATE(),
+    
+    -- 操作人编码:从Token中获取的当前登录用户编码,可为空
+    created_by varchar(50) NULL
+);
+GO
+
+-- 第三步:给表添加备注
+EXEC sp_addextendedproperty 'MS_Description', '刷脸一致性校验记录表(旁路写入,不影响收费流程)', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log';
+GO
+
+-- 第四步:给每个字段添加详细备注
+EXEC sp_addextendedproperty 'MS_Description', '主键:自增ID', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'id';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '最终采用身份:face=采用刷脸身份,card=采用社保卡身份(必填)', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'adopted_identity';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '患者ID:从页面获取的患者编号,可为空', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'patient_id';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '就诊次数:从页面获取的就诊次数,可为空', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'times';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '是否一致:1=社保卡和刷脸身份证号一致,0=不一致,NULL=未完成比对', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'is_match';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '用户操作:go_face=用户选择去刷脸,skip_face=用户跳过刷脸直接结算,continue_with_card=不一致时继续按卡结算,redo=返回重新核验', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'user_action';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '失败原因:fail=刷脸失败,error=网络异常,cancel=用户取消刷脸', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'reason';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '社保卡身份证号尾号:仅存储后4位(例如:1234),用于脱敏展示,不存完整身份证号', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'card_tail';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '刷脸身份证号尾号:仅存储后4位(例如:1234),用于脱敏展示,不存完整身份证号', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'face_tail';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '实人认证业务流水号:从刷脸接口返回的res.data.data.authNo字段获取,用于追踪刷脸记录', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'auth_no';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '预留扩展字段:存储JSON格式的额外信息,可为空', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'ext_json';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '创建时间:记录插入时间,默认当前时间', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'created_at';
+GO
+
+EXEC sp_addextendedproperty 'MS_Description', '操作人编码:从Token中获取的当前登录用户编码,可为空', 'SCHEMA', 'dbo', 'TABLE', 't_face_verify_log', 'COLUMN', 'created_by';
+GO
+
+-- 第五步:创建索引(提升查询效率,不影响写入性能)
+CREATE INDEX IX_face_verify_log_created_at ON dbo.t_face_verify_log(created_at DESC);
+GO
+
+CREATE INDEX IX_face_verify_log_patient_times ON dbo.t_face_verify_log(patient_id, times);
+GO
+```
+
+
+
+### 追加(可选):存储完整身份证号字段
+
+如需在审计日志中存储完整身份证号码(不推荐明文,建议加密/脱敏后存),仅需在现有表上“加列”,不改动原有字段与逻辑:
+
+```sql
+ALTER TABLE dbo.t_face_verify_log
+ADD card_id_no varchar(32) NULL,     -- 社保卡身份证完整号(如需可加密后存)
+    face_id_no varchar(32) NULL;     -- 刷脸身份证完整号(如需可加密后存)
+
+-- 可选:如需检索,建掩码索引(不建议对明文建索引)
+-- CREATE INDEX IX_face_verify_log_card_id_no ON dbo.t_face_verify_log(card_id_no);
+```