网信办旧业务基准与菜牌补验收结果

2026-10-24。用户提供中央网信办0923/zhct.tar.gz,并明确以网信办原有业务逻辑为主。当前源码保留版本升级和达梦适配,旧包作为业务回归基准;本轮未新增菜单/账号权限,未修改客户服务器、业务源码或已交付SQL包。

业务范围以旧代码为准

旧包实际有三条相关链路:

  1. 菜品、配方、菜谱与排菜:固定排菜身份,原有18项菜单,各自唯一餐厅。
  2. 图片菜牌与菜牌图片ZIP:按日期/餐次取图,菜牌模板使用template2,主要展示菜名及分类。
  3. 原Console自动供餐大屏:通过/m/ControlScreen/everyMealSupply、cuisineKind、offerIngredient、recommend_v1等接口获取供餐和营养推荐。

新版ElectronicMenu的公开token、六位绑定码、电视设备日志属于另一条新增能力,旧归档没有该入口。用户先前说“两种都用”,随后要求按旧代码为主,因此不能据前一个笼统回答自动新增固定账号菜单或管理员功能。原图片与旧Console都列为必验;新版能力已有独立服务补测,其菜单开通和设备绑定仍需明确现场使用账号后配置。

原role_data已经登记了本套餐厅;新版改读user_data,先前用户批准补齐的唯一餐厅授权是在承接原权限。原role_data及18项菜单仍保留,不改超管,不扩另一套数据。

实际测试结果

验证项 车公庄配置 阜成路配置 范围
原迁移PHP主业务回归(UTF-8客户端配置) 20通过/0失败/3跳过 20通过/0失败/3跳过 原菜单、权限、菜品、排菜、查询与事务
图片菜牌及新版菜牌服务专项 37通过/0失败 37通过/0失败 使用专属12表合成模式,真实PHP/PDO_DM调用
旧Console主链路及真实菜牌ZIP 13通过/0失败 13通过/0失败 三餐历史非空数据、分类/食材独立SQL对照、推荐结构/数值有效性、GD图片与ZIP生成

图片菜牌专项包括配置新增/修改、四餐次、缺图/删图/设备状态;新版包括自动内容、餐厅/店权限、双栏、停用、绑定码一次性/过期、重绑/token失效、配置刷新和日志脱敏。预期拒绝只接受精确业务异常,不能把SQL异常算作通过。

旧Console验证读取完整迁移副本,通过控制时钟选择真实历史非空日期与餐次,不更改排菜数据。分类、食材计数与独立SQL核对;推荐包含非空菜名、图片路径、营养section及有效数值。不是所有推荐算法输出与旧MySQL逐项全等的证明,也未覆盖旧Console全部监控/营收/场馆接口。

菜牌ZIP实际生成并逐项校验PNG签名、尺寸与数量;中文预览已目视核验。旧template2.png和中文字体与当前代码字节一致;生成器保留该模板,当前版本另有同名文件去重等处理。文件位于私有演练目录,未公开上传业务图片。

必须落实的PHP中文配置

进一步目视检查发现:未加载客户端编码配置时,PDO从UTF8数据库读取中文返回GBK字节,SQL不会因此报错,ZIP还能生成,但菜名乱码。仅给DSN加charset=UTF8、utf8或UTF-8在本次驱动上均无效。

使用任务私有dm_svc.conf:

CHAR_CODE=(PG_UTF8)

并在PHP进程启动前设置DM_SVC_PATH指向该文件所在目录后,读取结果与源备份HEX字节一致。另用中文、扩展汉字和emoji写入合成表,校验服务器HEX与PHP字节完全一致,防止“同一错误编码写入再读出”形成假通过。所有上表最终结果都在UTF8配置下重新执行。

现场沿用《前厅部署手册》第10节的专用/etc/zhct-dm-client路径。DM_SVC_PATH需要进入实际PHP-FPM服务和CLI/Cron/Supervisor进程环境,仅在SSH终端export或应用.env中填写不能证明FPM已生效。必须分别检查CLI与实际Web请求的中文及JSON;采用现场已确认的PHP路径/服务名,不猜测服务名、不重启整台服务器。此项是客户端配置,不是修改数据库dm.ini,也无需重新转换SQL。

官方依据:PHP中文乱码处理、客户端dm_svc.conf与DM_SVC_PATH。本次仅在临时演练进程配置,未改临时主机/etc/dm_svc.conf或客户配置。

现场仍需完成

本轮未变更

两份达梦迁移包、包内SHA、源数据库和业务源码保持原样。之前关于旧模型store_id自动追加的静态猜测已撤回:当前ThinkPHP版本不读取该globalScope属性,真实调用通过,未为其增加兼容补丁。

旧归档SHA256:2d32a734f304054f777fe0378a891ba22db17d582a750f26956a9ae3530421b0。共17085个普通文件;选取源码1392个,project/current选取源码逐文件一致。原2GB归档和含私有配置源码只存私有目录,不进Git。