过去企业提交产品备案后,平台只显示「已提交」,企业不知道卡在哪一步。 现在每条产品记录都有明确状态:已通过(SUCCESS)、审核中(PENDING)、 未通过(FAILED),并保留最近一次审核结果,避免同一产品反复堆积记录。
另一个改动是租户隔离。所有 Ecode 操作都带 tenantId 查询与更新, 平台级配置表单独放行,避免跨企业读到别人的码段与备案信息。
这里记录项目进展、技术判断与合规变化,不写行业空话。 每一条都来自实际交付,能对应到具体的系统、流程或标准条款。
新企业接入不只是开一个租户。这次把 Ecode 备案的「收集—审核—上传」 拆成了三个可见状态,减少了反复确认。
过去企业提交产品备案后,平台只显示「已提交」,企业不知道卡在哪一步。 现在每条产品记录都有明确状态:已通过(SUCCESS)、审核中(PENDING)、 未通过(FAILED),并保留最近一次审核结果,避免同一产品反复堆积记录。
另一个改动是租户隔离。所有 Ecode 操作都带 tenantId 查询与更新, 平台级配置表单独放行,避免跨企业读到别人的码段与备案信息。
企业资料、产品资料与码段申请是三个独立环节, 任何一处信息不一致,都会在回传时被平台拒绝。
第一处是企业名称与营业执照不一致;第二处是产品规格未逐条备案, 把不同规格合并成一条;第三处是码段申请后没有及时下载入库, 导致重复申请与码段浪费。
我们的处理方式是先在校验层拦截:名称、规格、数量不完整就不允许提交, 并在管理后台显示每一步的状态与失败原因,避免企业反复试错。
查询条件、缓存键、异步任务与文件路径,任何一处漏掉租户维度, 都会变成跨企业数据泄露。
我们在数据访问层统一拦截租户条件,平台级表显式标注为无租户语义, 避免「一刀切」造成平台配置读不到。更新与删除同样按租户兜底, 不接受只按主键操作。
异步任务与导出文件也带租户前缀。否则并发执行时,两个企业的任务 可能写到同一个临时文件,出现串数据而日志里看不出来。
全模块上线看起来完整,但问题会集中在验收前爆发。 先跑一条产线,能把数据模型和现场操作提前暴露。
一条产线包含赋码、绑定、质检、入库四个动作,能在短时间内拿到真实数据。 扫码顺序、异常处理、工人操作习惯,这些都不是在会议室里能推演出来的。
验证通过后再复制到其他产线,改的是配置而不是代码。 如果一开始就铺开,任何一处模型错误都会同时污染多条线的数据。
一个溯源码只能绑定一个箱码。绑定关系一旦写错, 后续出库与窜货判断都会跟着错。
产线扫描顺序固定为单品码、箱码、托盘码,重复绑定直接拒绝并提示, 不把错误留到出库环节再发现。绑定记录保留操作时间与设备。
解绑需要审批并留痕,避免现场随手改数据。对于确实需要返工的批次, 走独立的返工流程,原绑定关系标记作废而不是删除。
洗涤符号不是装饰图标。开口盆形、三角形双斜线、正方形竖线与横线, 分别对应水洗、氧漂与干燥方式。
我们把符号绘制集中在 PDF 生成服务里,按标准逐项绘制, 不依赖字体图标,避免不同设备上显示缺字或变形。
输出前核对水洗温度、漂白方式与干燥条件,确保符号与文字说明一致。 符号本身不能替代文字,两者矛盾时以更严格的要求执行。
小程序适合微信内传播,H5 适合未安装微信或从其他渠道扫码的用户。 两条入口共用同一套查验接口。
H5 不依赖登录,只按码查询结果,降低家长的使用门槛; 小程序承担订阅消息与后续服务场景,两者数据同源,不做两套逻辑。
接口层统一做码格式校验与频率限制,避免有人用脚本批量探测码段。 查验结果只返回该码对应的公开信息,不暴露企业内部数据。
把配置从代码里拆出来,客户改活动说明、通知文案不需要发版, 也不需要每次找开发。
配置项集中管理,改完即时生效并记录操作人。 代码只保留稳定的业务逻辑,避免每次运营调整都走一次发布流程。
这也是我们判断交付是否完成的标准:如果客户离开我们就无法修改 一条通知文案,说明交付还没做完。
阈值太低会误伤正常访客,太高则起不到作用。 按单 IP 计数、失败也计入,超限返回 429。
计数放在服务端内存并按时间窗口滑出,不依赖第三方组件。 失败请求同样计入,避免攻击者用错误参数反复试探。
同时做字段长度与服务端二次校验,减少无效请求占用。 拦截日志保留来源 IP 与时间,便于事后判断是否为误伤。
该分类下暂无内容。