店铺违规预警:级别/责任人/处理截止/超时/推送状态 + 处理状态四档 + 群推送接口 + 预览统计页 #332

Merged
renshen merged 1 commits from feature/sumu-store-violation-alert-workflow into main 2026-10-13 19:54:01 +08:00
Collaborator

实际改动

  • 统一表新增预警派生字段(预警级别/是否提醒/建议动作/提醒方式/处理时效/责任人/处理截止/忽略原因/推送状态/最近推送时间)+ 4 个查询索引;新增违规字典表 store_violation_rules 与推送日志表 store_violation_push_logs。
  • 预警计算(App\Business\StoreViolationAlertCalculator):按「平台+违规类型」匹配字典——原文先去(…)括号处置说明,再做 相等/前缀/分词/宽松/关键词 匹配;匹配不到=不需要提醒(只入库不推送)。责任人 = 店铺账号镜像运营负责人(与店铺维度报表同口径,214 家涉事店铺实测匹配 212 家),未命中回退店铺档案 shopHead。处理截止 = 申诉截止优先,否则按字典时效或级别默认(P0+1/P1+2/P2+3 天,当天 23:59:59)。
  • 页面(店铺违规信息预警):新增 预警级别(红/橙/绿标签)、责任人、处理截止、是否超时、推送状态 5 列;新增 预警级别/责任人(含我的待办)/是否超时 筛选;默认视图=「需提醒 & 未处理」,可切换「全部数据」;行内操作:认领(处理中)/完成/忽略(忽略必填原因)。
  • 处理状态扩为 未处理/处理中/处理完成/已忽略;导入兼容旧值 已处理→处理完成、无需处理→已忽略。
  • 新增「预览统计」页面(财务经营风险管控目录):平台 Tab 联动 + 4 张 KPI 卡(今日新增/待处理总数/P0未处理/已超时)+ 需提醒未处理预览列表(含认领)。
  • 群推送先留接口(配置 Webhook 后启用):P0/P1 即时推送(每天 09:00 起每 5 分钟;消息含级别、平台/店铺、违规类型、处罚措施、处理建议、责任人、处理截止、去认领签名链接;点击认领自动置为处理中);P2 每日 10:00 汇总(各级数量+超时未认领点名);防重与推送日志;命令 store-violations:push-instant / push-digest。
  • 同步与导入自动计算派生字段;新增 store-violations:recalc-alerts 重算命令;生产 cron 登记两个推送任务(未配置 Webhook 时自动跳过)。

验证

  • phpunit:StoreViolation 系列 + 导航 + 部署调度 共 42 项 / 453 断言通过(含字典匹配、默认视图、认领签名、推送假 Webhook)。
  • 生产数据核对:214 家涉事店铺责任人匹配 212 家;字典试算 61% 记录命中提醒(京喜揽收/出库超时等按确认不提醒)。

风险

  • 共享镜像字段迁移(全部可空加列 + 新表),发布前备份 store_violation_records。
  • 推送默认关闭(enabled=false),配置 Webhook 前不会发送任何消息。
## 实际改动 - 统一表新增预警派生字段(预警级别/是否提醒/建议动作/提醒方式/处理时效/责任人/处理截止/忽略原因/推送状态/最近推送时间)+ 4 个查询索引;新增违规字典表 store_violation_rules 与推送日志表 store_violation_push_logs。 - 预警计算(App\Business\StoreViolationAlertCalculator):按「平台+违规类型」匹配字典——原文先去(…)括号处置说明,再做 相等/前缀/分词/宽松/关键词 匹配;匹配不到=不需要提醒(只入库不推送)。责任人 = 店铺账号镜像运营负责人(与店铺维度报表同口径,214 家涉事店铺实测匹配 212 家),未命中回退店铺档案 shopHead。处理截止 = 申诉截止优先,否则按字典时效或级别默认(P0+1/P1+2/P2+3 天,当天 23:59:59)。 - 页面(店铺违规信息预警):新增 预警级别(红/橙/绿标签)、责任人、处理截止、是否超时、推送状态 5 列;新增 预警级别/责任人(含我的待办)/是否超时 筛选;默认视图=「需提醒 & 未处理」,可切换「全部数据」;行内操作:认领(处理中)/完成/忽略(忽略必填原因)。 - 处理状态扩为 未处理/处理中/处理完成/已忽略;导入兼容旧值 已处理→处理完成、无需处理→已忽略。 - 新增「预览统计」页面(财务经营风险管控目录):平台 Tab 联动 + 4 张 KPI 卡(今日新增/待处理总数/P0未处理/已超时)+ 需提醒未处理预览列表(含认领)。 - 群推送先留接口(配置 Webhook 后启用):P0/P1 即时推送(每天 09:00 起每 5 分钟;消息含级别、平台/店铺、违规类型、处罚措施、处理建议、责任人、处理截止、去认领签名链接;点击认领自动置为处理中);P2 每日 10:00 汇总(各级数量+超时未认领点名);防重与推送日志;命令 store-violations:push-instant / push-digest。 - 同步与导入自动计算派生字段;新增 store-violations:recalc-alerts 重算命令;生产 cron 登记两个推送任务(未配置 Webhook 时自动跳过)。 ## 验证 - phpunit:StoreViolation 系列 + 导航 + 部署调度 共 42 项 / 453 断言通过(含字典匹配、默认视图、认领签名、推送假 Webhook)。 - 生产数据核对:214 家涉事店铺责任人匹配 212 家;字典试算 61% 记录命中提醒(京喜揽收/出库超时等按确认不提醒)。 ## 风险 - 共享镜像字段迁移(全部可空加列 + 新表),发布前备份 store_violation_records。 - 推送默认关闭(enabled=false),配置 Webhook 前不会发送任何消息。
renshen added 1 commit 2026-10-13 19:53:56 +08:00
- 新增违规字典表 store_violation_rules 与推送日志表 store_violation_push_logs;统一表增加预警派生字段(迁移,全部可空带索引)
- 预警计算:按平台+违规类型匹配字典(去括号后 相等/前缀/分词/宽松/关键词),匹配不到=不提醒;责任人取店铺账号镜像运营负责人并回退店铺档案;处理截止=申诉截止优先,否则级别天数(P0+1/P1+2/P2+3,当天23:59:59)
- 页面:新增预警级别(红/橙/绿标签)、责任人、处理截止、是否超时、推送状态5列;级别/责任人(含我的待办)/超时筛选;默认视图(需提醒&未处理)与全部数据切换;行内 认领/完成/忽略(忽略必填原因)
- 处理状态扩为 未处理/处理中/处理完成/已忽略,导入兼容旧值(已处理/无需处理)
- 新增「预览统计」页面:平台Tab联动 + 4张KPI卡(今日新增/待处理/P0未处理/已超时)+ 需提醒未处理预览列表与认领
- 群推送先留接口:P0/P1 每天09:00起每5分钟即时推送(责任人、处理建议、去认领签名链接);P2每日10:00汇总(含超时未认领点名);防重与推送日志;新命令 push-instant/push-digest
- 同步与导入自动计算派生字段;新增 store-violations:recalc-alerts 重算命令;生产 cron 已登记推送任务
- 测试:StoreViolation 系列 + 部署调度 + 导航 共42项/453断言通过
renshen merged commit ea80148dfc into main 2026-10-13 19:54:01 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#332
No description provided.