分享下拿集合的第一条数据做判断碰到的坑

业务假设

假设一个集合有5条数据,该数据表示的对象中有一个字段是审核人id,后台需要根据审核人id来获取审核人的相关信息,一开始前端是使用全量更新的方式传回被审核的数据,那么取集合的第一条数据中的审核人id来做判断和设值就好了,所以有审核人ID就表示有审核人,就可以去搜审核人的信息,没有则跳过设值逻辑。但是之后加上了权限,客户只有拥有5条数据的相关权限才能审核,这时候前端把全量更新改为了部分更新,也就是只回传那些客户有权限审核的数据,这样就会出现一个问题,可能客户有权限审批的是第2,3,4条数据,那么前端只回传第2,3,4条数据的审核结果给后端来更新,此时第一条数据因为没有回传,所以不会被更新,那么第一条数据的审核人id就还是为null,但是其实审核已经通过了,第2,3,4条数据其实都是有审核人id的,所以回到刚开始的思路,这时取集合中第一条数据的审核人id去设置审核人的相关信息就是错误的逻辑,因为根本就是null,设值的逻辑就被跳过了,这样就导致了前端最后看到的结果是审批通过,但是审核人的所有信息却都是空的。

解决方法:

其实这就是开发自己逻辑思维的问题,在前端修改逻辑之后,没有及时想到自己的逻辑会有问题,或者也可以说自测不过关,二者但凡有一个做好,都可以更好的规避以上的问题。一开始是准备使用倒序的方式,把员工id不为null的数据排在最前面,这样就可以保证第一条数据只要审核后就一定会有值,但是因为一个逻辑问题,专门去改列表排序,这本来就不是一个最优的做法,最后是因为审核时候还有个主表,和审核数据表是一对多的关系,然后审核后也会更新主表,所以把逻辑改成从主表取员工ID就好了,因为只要审核了,主表就一定会有员工ID的数据。说到最后其实也没有给个能通用的解决方案,因为主要还是得结合业务来处理这个问题,实在不行再用技术的思想解决,主要是想分享一下自己碰到的这个坑,可能有些朋友刚好碰到类似场景,就可以更好的避免和排查问题了。

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/108543022
今日推荐