客服角色的功能权限里订单查看已勾选,进页面接口返回 200 但 data 是空数组,total 为 0。同一个账号在测试环境能看到 200 多条,两个环境的角色配置看起来一样。日志里能对上时间点,这种反而好排。
功能权限和数据范围是两张表,新建角色时只写了功能权限,数据范围字段留空被默认成仅本人。客服账号本身没有名下订单,范围一收就什么都查不到。这一点先确认清楚,后面就不用反复试。
SELECT role_id, perm_code, data_scope FROM role_permission WHERE role_id = 33; UPDATE role_permission SET data_scope = 'DEPT' WHERE role_id = 33 AND perm_code = 'order:view';
「功能权限与数据权限」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
处理上按这个顺序:角色保存时强制要求选数据范围 不给默认值;把功能权限和数据范围合成一个授权页 少一个漏填入口;上线前用每个角色各登录一次 看列表 total 是否大于 0。
结果对不对很好判断,客服账号进订单页 total 变成 218,与同部门其他账号看到的数据一致。
