帮助中心、知识库、题库与搜索

本文整理 DGJ2.0 帮助中心、问答、题库、知识库、ES 搜索和七鱼机器人知识库同步。它不是进销存主链路,但影响服务站自助查询、客服支持和机器人知识能力。

业务目标

  • 服务站用户可以提问、查看常见问题、搜索帮助内容。
  • OPS/后台可以审核问题、回答问题、维护题库。
  • 题库支持 Excel 导入和错误文件。
  • 知识库支持分类、列表、详情、收藏。
  • 帮助内容可进入 ES,用于关键字搜索。
  • 部分知识可同步到七鱼机器人知识库。

入口文件

  • 老帮助中心:application/controllers/help/Dgj.php
  • 新问题:application/controllers/newhelp/Question.php
  • 新回答:application/controllers/newhelp/Answer.php
  • 题库:application/controllers/newhelp/QuestionLib.php
  • 知识库:application/controllers/knowledge/Knowledge.php
  • QA:application/controllers/qa/Qa.php
  • Help Service:application/Services/Help/*
  • Knowledge Service:application/Services/Knowledge/*
  • QA Service:application/Services/Qa/QaSer.php

核心表

| 表 | 用途 | | --- | --- | | t_help_question | 用户提问 | | t_help_answer | 回答 | | t_help_question_lib | 题库 | | t_knowledge | 知识库内容 | | t_knowledge_category | 知识分类 | | t_knowledge_collect | 收藏 |

核心状态

HelpBaseService.php 定义了问题和回答状态:

  • 问题:Q_DJD 待解答,Q_DSH 待审核,Q_YSH 已审核,Q_YJD 已解答。
  • 回答:A_DSH 待审核,A_YCN 已采纳,A_WCN 未采纳。

题库和问答的可写字段也在 HelpBaseService:问题、附件、模块、关键字、回答、是否有图/视频等。

核心方法

帮助中心:

  • Dgj::commonProblem:常见问题。
  • Dgj::productKnowledge:产品知识。
  • Dgj::ask:提问。
  • Dgj::search:搜索。
  • Dgj::questionDetail:问题详情。
  • Dgj::myQuestion / myAnswer:我的提问/回答。

新帮助:

  • Question::allList / myList / info / create / update / delete
  • Answer::allList / myList / create / update / remark / check
  • QuestionLib::search / faq / create / update / status / transform / import

搜索和导入:

  • HelpCacheEsSer::search:ES 搜索。
  • HelpCacheEsSer::createIndex:创建索引。
  • ExcelService::upload:上传 Excel。
  • ExcelService::createError:生成错误文件。
  • ExcelService::downloadTemplate:下载模板。

知识库:

  • KnowledgeSer::getCategoryTree:分类树。
  • KnowledgeSer::getKnowledgeList:列表。
  • KnowledgeSer::getKnowledgeInfo:详情。
  • KnowledgeSer::collectKnowledge:收藏。
  • QiYuRobotKnowledgeSer:七鱼机器人知识库查询。

主流程

flowchart TD
  A["用户提问/搜索"] --> B["按模块和关键字查询"]
  B --> C["命中题库/知识库/ES"]
  A --> D["提交新问题"]
  D --> E["后台回答"]
  E --> F["审核/采纳"]
  F --> G["沉淀为题库或知识库"]
  G --> H["刷新 ES 或同步机器人知识库"]

异常流程

  • 搜不到问题:查 ES 索引、题库状态、模块筛选。
  • 题库导入失败:查模板表头、错误文件、必填字段。
  • 回答无法采纳:查问题状态、回答状态、当前用户权限。
  • 知识库不显示:查分类、发布状态、收藏/权限范围。
  • 七鱼知识库不同步:查 QiYuRobotKnowledgeSer 和外部同步日志。

常用 rg 命令

rg -n "QUESTION_STATUS|ANSWER_STATUS|QUESTION_LIB|HelpBaseService" application/Services/Help
rg -n "HelpCacheEsSer|createIndex|searchQuestionIds|operationBatchCreate" application/Services/Help
rg -n "QuestionLib|import\\(|ExcelService|createError|downloadTemplate" application/controllers/newhelp application/Services/Help
rg -n "KnowledgeSer|QiYuRobotKnowledgeSer|KNOWLEDGE" application/controllers/knowledge application/Services/Knowledge application/config/tables.php

改动风险和回归清单

  • 问答:提问、回答、审核、采纳、删除。
  • 题库:新增、导入、启停、转问答、模板和错误文件。
  • 搜索:关键字、模块、ES 索引刷新。
  • 知识库:分类树、列表、详情、收藏。
  • 外部同步:七鱼机器人知识库同步失败和重试。