SELECT id, customer_key, channel, status FROM cs_tickets WHERE customer_key = 'u:8f14e45f' ORDER BY id DESC LIMIT 5;
同一个用户先在网页表单提了一次,又回了一封邮件,后台工单列表出现两条,客服来回回复,用户说自己只问了一件事。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,工单表把来源渠道也算进了唯一键,同一个邮箱从两个入口进来就是两条。合并逻辑只在页面展示时按邮箱分组,底层数据没有归一。
围绕「多渠道工单合并」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
处理上按这个顺序:加一个客户标识字段,邮箱和手机号归一后生成,建索引;入库前按标识查最近一条未关闭工单,有就追加消息;渠道信息挪到子表记录,别混在主表里当唯一键。
改完只确认一件事:两个渠道各提一次,列表里只有一条工单,消息里能看到两个来源。
