29 KiB
29 KiB
业务进度管理
本文档用于跟踪 Sport Era 项目所有功能模块的开发状态、待办事项与避坑记录。每完成一个功能或发现一个坑,及时在对应章节追加。
目录
一、已完成事项
25. 社区帖子 RAG 生成模型切换到 Qwen3.7
- 状态:已完成 - 时间:2026-06-10
完成内容:
- 排查
/api/community/aiAnalysis仍返回DeepSeek 返回异常: Insufficient Balance的原因,确认图片识别已走 DashScope Qwen,但帖子 RAG 最终 JSON 生成仍复用默认 DeepSeek 配置。 - 已将
KbRagService::analyzePost()的最终生成阶段改为 DashScope OpenAI 兼容接口,模型固定为qwen3.7-plus,使用server/.env的DASHSCOPE_API_KEY。 DeepSeekClient作为 OpenAI 兼容 HTTP 客户端保留,但现在会按调用方传入的provider_label返回错误提示;帖子分析失败时将显示DashScope(Qwen),不再误导为 DeepSeek。AiService::saveResult()已改为记录下游返回的真实模型名,帖子 AI 日志会写入qwen3.7-plus。
涉及模块:
server/app/common/service/ai/KbRagService.phpserver/app/common/service/ai/DeepSeekClient.phpserver/app/common/service/ai/AiService.php
24. 社区帖子 AI 分析改为统一分析页并显示分析计时
- 状态:已完成 - 时间:2026-06-10
完成内容:
- 社区列表页与首页社区流中的六合彩帖子
AI分析入口已改为直接跳转统一分析页/pages/ai_analysis/ai_analysis?type=post&id=...,不再先进帖子详情页再等待页内分析。 - 帖子详情页中的
AI分析按钮也已切换为直接跳统一分析页;旧的show_ai=1链路改为兼容重定向,避免历史入口失效。 - 统一分析页已新增
post类型支持,接入/api/community/aiAnalysis,并展示帖子卡片、综合结论、下期预测、可信线索、风险提示、相似历史和知识库证据。 - AI 分析加载阶段新增“分析用时
0m1s”计时显示;赛事分段分析的后续阶段 loading 也会继续显示累计分析时长,避免长耗时场景下用户无感等待。
涉及模块:
uniapp/src/pages/ai_analysis/ai_analysis.vueuniapp/src/packages_community/pages/post_detail.vueuniapp/src/packages_community/pages/index.vueuniapp/src/pages/empty/empty.vue
23. 六合图片分析升级到 Qwen3.7 并移除代码内密钥
- 状态:已完成 - 时间:2026-06-10
完成内容:
AiService::analyzeLotteryPostImages()已将 DashScope 视觉模型从旧版qwen-vl-max-latest切换为新版统一多模态模型qwen3.7-plus,继续沿用 OpenAI 兼容接口https://dashscope.aliyuncs.com/compatible-mode。- 移除了
AiService中硬编码的 DashScope API Key,改为统一从server/.env的DASHSCOPE_API_KEY读取,避免密钥继续直接写入代码文件。 - 同步补充
server/.example.env的 DashScope Key 占位配置,便于后续环境初始化和部署时对齐。
涉及模块:
server/app/common/service/ai/AiService.phpserver/.envserver/.example.env
22. 六合图片分析 404 链路修复
- 状态:已完成 - 时间:2026-06-09
完成内容:
- 排查
/api/community/translatePost在旧澳六合/新澳六合图片分析分支返回HTTP 404的问题,确认不是帖子不存在,而是 Qwen 视觉模型请求地址被拼成了.../v1/v1/chat/completions。 - 已将
AiService中 DashScope 兼容接口基地址收敛为https://dashscope.aliyuncs.com/compatible-mode,并在DeepSeekClient中补充聊天接口地址规范化,兼容base_url传入根地址、/v1地址或完整/chat/completions地址,避免后续再次重复拼接。 - 同步把多模型错误提示统一改为带 provider 名称返回,后续如果 DashScope/Qwen 鉴权或模型权限异常,接口会更容易直接看出来自哪个下游。
涉及模块:
server/app/common/service/ai/AiService.phpserver/app/common/service/ai/DeepSeekClient.php
21. 六合图片分析切换到 DashScope Qwen 视觉模型
- 状态:已完成 - 时间:2026-06-09
完成内容:
AiService::analyzeLotteryPostImages()已按当前需求固定改为调用阿里云 DashScope OpenAI 兼容接口,不再读取后台lottery_image_analysis_*或deepseek_vision_model配置。- 当前六合彩图片分析分支硬编码使用
Qwen视觉模型qwen-vl-max-latest,兼容接口基地址统一为https://dashscope.aliyuncs.com/compatible-mode,由客户端自动补齐聊天接口路径,并使用指定的 DashScope API Key。 - 错误提示中的 provider 标识已改为
DashScope(Qwen),方便后续定位图片分析失败是否来自 Qwen 视觉链路。 - 同步收紧图片分析提示词,新增“先过滤噪音再逐项分析”的规则,只保留当期号码、图表结论、推荐组合等有效信息,忽略水印、口号、装饰边框、重复标题和低置信度杂讯。
涉及模块:
server/app/common/service/ai/AiService.php
20. 六合帖子 translatePost 收紧为纯图片分析
- 状态:已完成 - 时间:2026-06-09
完成内容:
/api/community/translatePost对新澳六合 / 旧澳六合已改为只走当前帖子图片分析,不再接受旧版六合彩分析缓存直接命中。- 新增
lottery_analysis_source=image_only与lottery_analysis_images_hash标记,只有明确由当前帖子图片生成的分析结果才会复用;旧缓存或图片已变更时会重新按图片分析。 - 移除了六合彩图片分析失败时写入“虚拟历史分析文案”的兜底逻辑,当前图片无法识别时接口会直接返回失败,避免返回看似真实、实则并非基于当前图片的内容。
- 同步收紧图片分析提示词,明确禁止引用往期内容、历史期数、知识库信息或模型记忆;社区列表侧也只展示
image_only来源的六合彩分析结果。
涉及模块:
server/app/api/controller/CommunityController.phpserver/app/api/lists/community/CommunityPostLists.phpserver/app/common/service/ai/AiService.php
19. 社区帖子分支链路收紧为“普通/特朗普/六合”三类
- 状态:已完成 - 时间:2026-06-09
完成内容:
- 重新梳理社区帖子链路后,已将普通帖子、特朗普帖子、
新澳六合/旧澳六合帖子的入口分支彻底拆开:普通帖子不再显示或触发 AI 分析;特朗普帖子只保留本地MTranServer翻译链路;六合帖子才显示 AI 入口。 post-card、/pages/empty/empty、社区分包列表页、帖子详情页已统一按旧澳六合/新澳六合标签控制AI按钮和show_ai=1跳转,避免普通帖误入/api/community/aiAnalysis。- 后端
CommunityController::aiAnalysis()已改为只接受六合帖,并在进入知识库分析前先确保lottery_analysis_content已由视觉模型完成图片识别;translatePost()的彩票图片分析分支也同步从泛彩票收紧为a6/xa6。 KbRagService::analyzePost()与AiService::analyzePost()已补强:当前帖子本身只要识别为a6/xa6就稳定输出next_prediction,并跳过缺少预测字段的旧缓存,避免仍回落到历史错误结果。
涉及模块:
uniapp/src/pages/empty/empty.vueuniapp/src/packages_community/pages/index.vueuniapp/src/packages_community/components/post-card.vueuniapp/src/packages_community/pages/post_detail.vueserver/app/api/controller/CommunityController.phpserver/app/api/lists/community/CommunityPostLists.phpserver/app/common/service/ai/AiService.phpserver/app/common/service/ai/KbRagService.php
18. 世界杯资讯与特朗普帖子翻译切换 GPT-4o
- 状态:已完成 - 时间:2026-06-09
完成内容:
- 世界杯资讯翻译链路已改为按文章分类识别:当资讯属于“世界杯”分类时,
ArticleLogic::translate()与autoTranslateArticle()会优先走GPT-4o翻译,不影响其他资讯仍沿用原有翻译模型。 - 特朗普帖子翻译链路已改为按帖子标签识别:社区列表自动预热、帖子详情自动补翻译、
/api/community/translatePost手动翻译这 3 条路径,命中“特朗普”标签时统一走GPT-4o。 - 在 AI 配置层新增
openai_api_key / openai_base_url / openai_translation_model约定,并补充幂等 SQLdocs/sql/insert_ai_translation_gpt4o_config.sql;后台知识库配置列表已放开openai_%配置项,便于直接维护GPT-4o翻译参数。 - 同步把 OpenAI 兼容翻译调用的错误文案改成按 provider 显示,避免
GPT-4o未配置时仍提示成DeepSeek API Key未配置。
涉及模块:
server/app/common/service/ai/DeepSeekClient.phpserver/app/common/service/ai/AiService.phpserver/app/api/logic/ArticleLogic.phpserver/app/api/controller/CommunityController.phpserver/app/api/lists/community/CommunityPostLists.phpserver/app/adminapi/lists/ai/KbConfigLists.phpdocs/sql/insert_ai_translation_gpt4o_config.sql
17. 定时任务企业微信告警接入
- 状态:已完成 - 时间:2026-06-08
完成内容:
- 为 crawler 本地配置增加
alert.dispatch_enabled / alert.wecom_webhook / alert.cooldown_seconds,企业微信告警改走固定群机器人 Webhook,本地维护,不做后台配置页。 - 新增统一告警表
la_crontab_alert,并在 PythonDatabase与 PHPCrontabAlertService中同时补上建表与读写逻辑,支持告警创建、30 分钟冷却、成功恢复后自动关闭。 main.py已增加TASK_ALERT_POLICY与标准化运行摘要;已启用的crawler任务按“采集型 saved_required / 维护型 saved_if_candidates / error_report 跳过自告警”规则统一落库告警。ErrorCollector已扩展为记录单次运行的404 / 5xx / 网络异常统计;error_report任务已改为读取la_crontab_alert并尝试分发企业微信消息。- 非
crawler的 PHP 定时任务(如sms_verify、worldcup_article_translate)已通过Crontab.php接入同一张告警表,仅在执行异常时产生command_exception告警。 - 已新增幂等 SQL
server/public/dongqiudi-crawler/update_crontab_error_report.sql,并已把测试服现有error_report任务频率从*/5 * * * *调整为*/1 * * * *。
涉及模块:
server/public/dongqiudi-crawler/config/settings.yamlserver/public/dongqiudi-crawler/main.pyserver/public/dongqiudi-crawler/src/core/error_collector.pyserver/public/dongqiudi-crawler/src/core/alert_manager.pyserver/public/dongqiudi-crawler/src/storage/database.pyserver/public/dongqiudi-crawler/src/scheduler/task_runner.pyserver/app/common/command/Crontab.phpserver/app/common/service/crontab/CrontabAlertService.phpserver/public/dongqiudi-crawler/update_crontab_error_report.sql
16. 资讯无正文默认稿子并禁止发布
- 状态:已完成 - 时间:2026-06-07
完成内容:
- 为爬虫侧新增
article_publish_helper.py,统一判断资讯正文是否达到可发布标准;没有拉到正文、只有 RSS 摘要或占位文本的文章,采集入库时默认写成稿子状态(is_show=0)。 article_fetcher.py已调整为优先处理稿子状态或正文明显不足的资讯;抓到真实正文后会自动写回content,同时将文章切回发布状态并重置content_retry。nba_news.py、cba_news.py、crypto_news.py、lottery_news.py、hkjc_lottery_news.py、taiwan_lottery_news.py、fifa_worldcup_news.py已统一接入该规则,避免后续新采文章在正文未完成时直接暴露到前台。- 后台
ArticleLogic/ArticleController已增加发布拦截:手动新增、编辑或切换状态时,如果正文未达到发布标准,会直接返回“暂不能发布,请先保存为稿子”。 - 已在测试服先行回退当前可见的 NBA / CBA 占位稿:示例
1903906、1915226的公开详情现已返回空数据,不再继续对前台暴露无正文资讯。
涉及模块:
server/public/dongqiudi-crawler/article_publish_helper.pyserver/public/dongqiudi-crawler/article_fetcher.pyserver/public/dongqiudi-crawler/nba_news.pyserver/public/dongqiudi-crawler/cba_news.pyserver/public/dongqiudi-crawler/crypto_news.pyserver/public/dongqiudi-crawler/lottery_news.pyserver/public/dongqiudi-crawler/hkjc_lottery_news.pyserver/public/dongqiudi-crawler/taiwan_lottery_news.pyserver/public/dongqiudi-crawler/fifa_worldcup_news.pyserver/app/common/model/article/Article.phpserver/app/adminapi/logic/article/ArticleLogic.phpserver/app/adminapi/controller/article/ArticleController.php
15. NBA / CBA 资讯正文抓取补回退链路
- 状态:已完成 - 时间:2026-06-07
完成内容:
- 继续排查发现,NBA / CBA 资讯列表入库后,详情正文并不是完全没跑,而是由
article_content_fetch每轮按分类各抓3条慢慢补;因此刚采集完的一大批文章会先以 RSS 摘要占位,随后逐轮补正文。 - 测试服执行日志确认
article_content_fetch一直在跑,但部分 Google News 解码后的真实地址(如m.sohu.com、sports.sina.cn、sports.cctv.com)在scrapling Fetcher路径下会返回HTTP 403,导致正文抓取失败并累计content_retry。 - 已为
server/public/dongqiudi-crawler/article_fetcher.py增加requests + BeautifulSoup回退抓取链路:当scrapling返回403或抛异常时,改用普通请求抓页面并复用同一套正文抽取规则,降低这类站点的正文缺失率。 - 同步补充
server/public/dongqiudi-crawler/requirements.txt的beautifulsoup4依赖声明,避免后续环境重装时漏掉回退解析库。
涉及模块:
server/public/dongqiudi-crawler/article_fetcher.pyserver/public/dongqiudi-crawler/requirements.txt
14. NBA / CBA 资讯定时任务补注册与恢复拉取
- 状态:已完成 - 时间:2026-06-07
完成内容:
- 排查发现
server/public/dongqiudi-crawler/main.py、nba_news.py、cba_news.py代码入口都已存在,article_content_fetch也已覆盖cid=17/18的正文补全,但测试服la_dev_crontab中缺少nba_news、cba_news两个定时任务,所以后台从未自动触发 NBA / CBA 资讯采集。 - 已补充幂等 SQL
insert_crontab_nba_news.sql、insert_crontab_cba_news.sql,分别注册crawler nba_news和crawler cba_news。 - 已在测试服后台实际创建两条任务,当前执行规则分别为
10 * * * *(NBA)和20 * * * *(CBA),状态均为“运行”。 - 已手动验证一次:NBA 任务成功抓取 100 条,新增 99 条;CBA 任务成功抓取 169 条,新增 152 条。
- 已继续验证正文抓取链路:
article_content_fetch在 2026-06-07 00:50 自动处理了新入库的 NBA / CBA 文章,成功补全 4 篇正文;另有 2 篇源站返回 HTTP 403,已按现有content_retry机制记录重试。
涉及模块:
server/public/dongqiudi-crawler/main.pyserver/public/dongqiudi-crawler/nba_news.pyserver/public/dongqiudi-crawler/cba_news.pyserver/public/dongqiudi-crawler/article_fetcher.pyserver/public/dongqiudi-crawler/insert_crontab_nba_news.sqlserver/public/dongqiudi-crawler/insert_crontab_cba_news.sql
13. 赛事 AI 分段分析接入知识库召回
- 状态:已完成 - 时间:2026-06-06
完成内容:
- 排查发现
/api/ai/matchPredictSection原链路只会组装match_info / head_to_head / home_recent / away_recent后直接调用DeepSeekClient::chatJson(),并不会进入知识库检索层。 - 现已为赛事分析补充
KbRagService::analyzeMatch()与analyzeMatchSection(),先根据主队、客队、联赛名到知识库中召回相关资讯/帖子,再把召回证据与结构化交手记录、近期战绩、赔率一起交给 LLM。 AiService::predictMatch()与predictMatchSection()已切换到赛事专用 RAG 链路,返回结果增加evidence_list / similar_history / from_kb / retrieval_meta等知识库增强字段。- 为避免旧的赛事分段缓存继续短路新链路,当前逻辑只接受带知识库字段痕迹的新缓存;老缓存会自动跳过并重新走 RAG 生成。
- 当前赛事 RAG 仍未把
match_event / match_history / match_recent建成独立知识库 domain,交手记录和近期战绩继续直接从业务表读取;知识库侧主要召回相关资讯与帖子。
涉及模块:
server/app/common/service/ai/AiService.phpserver/app/common/service/ai/KbRagService.phpserver/app/common/service/ai/KbService.phpserver/app/api/controller/AiController.php
12. 全站 AI 知识库与 RAG 分析底座
- 状态:已完成 - 时间:2026-06-06
完成内容:
- 新增 AI 知识库底座表设计与 SQL:
la_ai_kb_document、la_ai_kb_chunk、la_ai_kb_sync_job、la_ai_kb_query_log,并补充知识库菜单与 Embedding / KB 配置初始化 SQL。 - 后端新增
KbService / KbSyncService / EmbeddingClient / KbRagService,支持资讯、帖子、彩票历史内容统一建档、切片、Embedding、全文候选、向量重排、规则混排和查询日志记录。 - 新增控制台命令
php think kb:rebuild与php think kb:consume,支持全量回填与增量消费;文章新增/编辑/上下架、帖子发布/删除/翻译缓存更新已接入同步任务队列,彩票历史通过消费命令补录扫描。 - 现有
AiService已接入知识库增强分析:资讯分析、彩票总分析、彩票分模块分析统一增加from_kb / evidence_list / similar_history / retrieval_meta;新增帖子专属接口GET /api/community/aiAnalysis?post_id={id}。 - 管理后台新增知识库配置、知识文档、同步任务、查询日志页面与对应 API,且扩展了 AI 分析记录 / AI 日志类型展示。
- 新增
qa/backend/test_kb_article_analysis.py与qa/backend/test_kb_post_analysis.py作为知识库增强接口的最小冒烟脚本。
涉及模块:
server/app/common/model/ai/*server/app/common/service/ai/*server/app/common/command/KbRebuild.phpserver/app/common/command/KbConsume.phpserver/app/api/controller/CommunityController.phpserver/app/common/service/ai/AiService.phpserver/app/adminapi/controller/ai/*admin/src/views/ai/*docs/sql/create_ai_kb_tables.sqldocs/sql/insert_ai_kb_config.sqldocs/sql/insert_menu_ai_kb.sqlqa/backend/test_kb_article_analysis.pyqa/backend/test_kb_post_analysis.py
11. 彩票资讯远程图片代理中转
- 状态:已完成 - 时间:2026-06-03
完成内容:
- 为前台资讯接口补充
ArticleImageProxyService,对白名单内的香港赛马会与台湾彩券远程图片生成站内代理地址。 - 新增公开接口
/api/article/imageProxy,由服务器代拉res.hkjc.com、cdn.taiwanlottery.com.tw等远程图片并回传,规避国内客户端无法直连的问题。 ArticleLogic::detail()与ArticleLists::lists()已统一接入代理改写,老文章无需重采即可让详情正文图片和列表封面图走服务器中转。- 代理按
ext.source白名单控制,仅对hkjc_racingnews、taiwan_lottery两类彩票资讯生效,降低 SSRF 风险。
涉及模块:
server/app/common/service/article/ArticleImageProxyService.phpserver/app/api/controller/ArticleController.phpserver/app/api/logic/ArticleLogic.phpserver/app/api/lists/article/ArticleLists.php
1. 项目基础文档与协作协议
- 状态:已完成 - 时间:2026-05-07
完成内容:
- 创建根目录
AGENTS.md,记录项目技术栈、子模块分工、数据库基准与协作规范。 - 创建
server/AGENTS.md、admin/AGENTS.md、uniapp/AGENTS.md、pc/AGENTS.md、qa/AGENTS.md。 - 创建
业务进度管理.md和设计稿映射.md,作为后续进度与设计稿映射维护入口。 涉及模块: AGENTS.mdserver/AGENTS.mdadmin/AGENTS.mduniapp/AGENTS.mdpc/AGENTS.mdqa/AGENTS.md业务进度管理.md设计稿映射.md
2. 新闻爬虫文章入库去重
- 状态:已完成 - 时间:2026-05-09
完成内容:
- 在懂球帝爬虫公共入库方法
upsert_articles中增加同分类标题去重,阻止不同article_id的同标题文章重复写入。 - 新闻和视频采集任务按已知频道传入对应文章分类
cid,减少新增cid=0数据。 - 对已存在
article_id且旧分类为cid=0的数据,后续带正确分类再次入库时可迁移到正确分类。 涉及模块: server/public/dongqiudi-crawler/src/storage/database.pyserver/public/dongqiudi-crawler/src/scheduler/task_runner.py
3. Truth Social 定时任务入口整理
- 状态:已完成 - 时间:2026-05-09
完成内容:
- 后台定时任务
truth_social改为执行public/dongqiudi-crawler/main.py truth_social。 - 移除旧的
server/public/truth-social独立采集目录,避免继续维护两套特朗普消息采集代码。 涉及模块: server/app/adminapi/logic/crontab/CrontabLogic.phpserver/public/dongqiudi-crawler/truth_social.py
4. 49宝典彩票社区爬虫接入
- 状态:已完成 - 时间:2026-05-11
完成内容:
- 新增
lottery_community爬虫入口,拉取 49宝典首页 Astro props 数据并解析开奖与图库资料。 - 自动创建或复用社区标签
彩票,自动创建或复用发布用户lottery_publisher。 - 按
origin_id对彩票社区帖子做幂等新增/更新,并同步帖子图片和标签关联。 - 接入 ThinkPHP
crawler命令白名单和 Python 主入口命令映射。 - 提供幂等 SQL 注册定时任务
crawler lottery_community。 - 修复 49宝典响应中文解码和图库图片域名规则,
prod/图片资源改用可直接访问的tk2cdn-ali.tprswe.com。 涉及模块: server/public/dongqiudi-crawler/lottery_community.py
10. 彩票 AI 趋势分析坏缓存容错
- 状态:已完成 - 时间:2026-06-03
完成内容:
- 排查
/api/lottery/aiTrend?code=XOMLHC时发现,当前问题不是彩种不存在,也不是当前 DeepSeek key 鉴权失败,而是命中了la_ai_analysis中一条type=4的成功缓存,但该缓存result实际是 JSON 字符串\"\",json_decode(..., true)后得到的是字符串而不是数组。 server/app/common/service/ai/AiService.php的analyzeLotteryModule()已补充防守:彩票 AI 模块缓存只有在解码后为非空数组时才视为有效;若模型返回的parsed不是数组或为空,也不再写入“成功缓存”,而是按格式异常处理。- 这样可以避免旧的坏缓存继续让
LotteryController::aiTrend()、aiHotCold()、aiStats()、aiColorZodiac()走到$this->data(string)并触发类型错误。
涉及模块:
server/app/common/service/ai/AiService.php
9. 世界杯资讯翻译预热限制为列表前 50 条
- 状态:已完成 - 时间:2026-06-03
完成内容:
- 调整
server/app/common/command/WorldcupArticleTranslate.php,世界杯英文资讯翻译预热不再全量扫描全部文章。 - 预热范围改为按前台资讯列表同口径排序:
published_at desc, id desc,仅处理用户当前最先看到的前 50 条世界杯资讯。 - 这样可以在 AI key 恢复后优先补齐前台首屏和专题页最靠前文章的翻译缓存,避免一次性处理历史文章拖慢恢复。
涉及模块:
server/app/common/command/WorldcupArticleTranslate.php
9. 世界杯比赛详情接口默认直播链接
- 状态:已完成 - 时间:2026-06-03
完成内容:
server/app/api/controller/MatchController.php在前台/api/match/detail接口中为世界杯比赛补充默认直播链接。- 当赛事
league_name=世界杯或competition_id=61且数据库live_url为空时,接口响应中的live_url默认返回https://sports.cctv.com/?spm=C28340.P9mj1V5B06xk.E2XVQsMhlk44.7。 - 默认值仅在接口响应层兜底,不写回数据库;后台已维护的
live_url仍优先返回,用户端继续只消费接口返回字段。
涉及模块:
server/app/api/controller/MatchController.phpadmin/src/views/match/lists/index.vueuniapp/src/pages/match_detail/match_detail.vueserver/public/dongqiudi-crawler/main.pyserver/app/common/command/CrawlerCommand.phpserver/public/dongqiudi-crawler/insert_crontab_lottery_community.sql
5. 项目级文档归档到根目录
- 状态:已完成 - 时间:2026-05-14
完成内容:
- 将项目级文档
01-产品方案文档.md、02-实现流程文档.md、爬虫任务脚本文档.md从docs/目录移动到项目根目录统一维护。 - 在根目录
AGENTS.md中补充项目级文档存放规则,明确协作类与业务类总文档默认放根目录。 - 同步修正文档引用路径,避免后续继续引用旧的
docs/路径。 涉及模块: AGENTS.md业务进度管理.md01-产品方案文档.md02-实现流程文档.md爬虫任务脚本文档.md
6. FIFA 世界杯资讯定时采集接入
- 状态:已完成 - 时间:2026-05-15
完成内容:
- 新增 FIFA 世界杯资讯爬虫入口
fifa_worldcup_news,通过 FIFA CXM API 拉取世界杯页面新闻区块数据。 - 增加世界杯文章分类幂等创建/复用逻辑,默认分类名为
世界杯,并自动启用显示。 - 新增定时任务注册 SQL
insert_crontab_fifa_worldcup_news.sql,采用crawler fifa_worldcup_news动作并按 10 分钟执行。 - 将后端定时任务调度链路扩展到
fifa_worldcup_news,沿用现有 crawler 异步执行模式。 - 已验证 FIFA API 可返回 20 条世界杯资讯;本地完整写库验证因 crawler 当前数据库配置指向
127.0.0.1而 MySQL 拒绝连接,需在服务器/可用数据库环境执行。 涉及模块: server/public/dongqiudi-crawler/fifa_worldcup_news.pyserver/public/dongqiudi-crawler/main.pyserver/public/dongqiudi-crawler/insert_crontab_fifa_worldcup_news.sqlserver/app/common/command/CrawlerCommand.phpserver/app/adminapi/logic/crontab/CrontabLogic.php
7. 懂球帝世界杯专属采集与用户端世界杯中心
- 状态:已完成 - 时间:2026-05-15
完成内容:
- 新增
dqd_worldcup专属采集任务,固定抓取懂球帝 2026 世界杯standing / schedule / person_ranking(goals|assists)。 - 世界杯赛程写入
la_match,统一使用league_name=世界杯、competition_id=61、sport_type=1,并保留round_name为stage。 - 新增世界杯缓存表
la_worldcup_standing、la_worldcup_person_ranking,保留小组积分榜和球员榜结构。 - 新增幂等 SQL
insert_crontab_dqd_worldcup.sql,自动创建并启用足球二级分类"世界杯",同时注册crawler dqd_worldcup定时任务。 MatchController新增worldCupStandings、worldCupRankings、worldCupSchedule3 个前台接口,供用户端世界杯中心使用。- 用户端
pages/match/match在"足球 > 世界杯"分类下新增"赛程对阵图"顶部入口卡,并新增packages_match/pages/worldcup世界杯专属页,提供"对阵图 / 积分榜 / 射手榜 / 助攻榜 / 赛程" 5 个 tab。 - 已在测试库执行 SQL 并手动跑通一次采集,当前写入结果为:
la_match104 场、la_worldcup_standing48 条、la_worldcup_person_ranking的goals/assists暂为空。 - 已验证测试服
/api/match/leagues和/api/match/lists?league_name=世界杯可返回世界杯分类与赛程;worldCupStandings / worldCupRankings / worldCupSchedule仍需等待后端自动同步到测试服后再做最终联调。 涉及模块: server/public/dongqiudi-crawler/dqd_worldcup.pyserver/public/dongqiudi-crawler/main.pyserver/public/dongqiudi-crawler/insert_crontab_dqd_worldcup.sqlserver/app/common/command/CrawlerCommand.phpserver/app/common/model/match/WorldCupStanding.phpserver/app/common/model/match/WorldCupPersonRanking.phpserver/app/api/controller/MatchController.phpuniapp/src/api/match.tsuniapp/src/pages/match/match.vue
8. 49宝典新澳六合/旧奥六合爬取 API 格式适配修复
- 状态:已完成 - 时间:2026-06-01
完成内容:
- 发现新澳六合(xa6)和旧奥六合(a6)的 draw 类型帖子自 2026-05-29 起停止更新,根源为第三方 API 变更响应格式。
- 字段变更:开奖号码数组从
openCode迁移到currentResult,期号从issue迁移到currentCompleteIssue/currentIssue。 - 字段编码:五行由中文(金木水火土)变为字母编码(j/m/s/h/t),单双由中文(单双)变为字母编码(o/e),大小由中文(大小)变为字母编码(b/s),颜色新增 R/G/B 编码。
- 时间格式:开奖时间从时间戳变为
"Y-m-d H:i:s"字符串格式。 - 修复
lottery_community.py的build_draw_post函数,添加WUXING_MAP、ODD_EVEN_MAP、SIZE_MAP等映射表,增强color_text函数支持 R/G/B 编码,增强format_time函数支持字符串时间格式。 - 修复后的代码在 2026-05-31 18:10 的执行中成功同步:xa6 新增 92 条(含 1 条 draw + 91 条 gallery),a6 更新 101 条。
- 数据库验证:xa6 和 a6 的 draw 类型均已同步到最新 2026151 期,gallery 类型同步到最新数据。
- 注意:2026149-2026150 期因 API 格式变更期间不可回溯(API 只返回当前期),已无法补回。 涉及模块:
server/public/dongqiudi-crawler/lottery_community.py