之前的文章介绍了项目中,代理商的所有下级代理商查询,其查询目的主要是为了,在上级代理商的利润变少了之后,所有下级代理商的利润也需要相对应的变少,否则上级代理商的利润不够支付下一级代理商的盈利所以不能存在这种情况,所以在发生这种情况的时候需要查询所有下级代理商,但是真正需要的功能则是,下级代理商成功销售一样产品后,所产生的利润来分配给各个上级,才是项目最主要的难点。
首先还是来分析思路,根据传入的代理商id,来获取当前代理商的上级,然后根据获取的上级代理商,获取他的上级,一级加一级的往上面找,找到之后计算出各个级别代理商应该获取的利润就非常复杂。ok 首先数据表还是上一章文章中的数据表没有变动,主要是查询数据的思路需要反过来查询。第一步,查询出当前的代理商数据,取出当前代理商数据对应的上级代理商id,P_ID.第二部判断他的上一级是不是顶级代理商,如果是顶级,就不用在网上找,否则,就继续往上找,其实如果一级一级找的话,相对来说还是比较简单,男的点就是如果实现无级别查找,无论是哪一级别都可以查询出所有上级。
查询出来之后,还需要获取对应代理商应获取的利润,因为每个代理商的利润有所不同,所以在表中没有这个字段,每个利润需要根据上下级来获取,也就是每个循环需要查询两个代理商的数据,上级减下级获取的就是上级的利润,OK 下面附上实例代码:
每个循环获取的数据,都是数组,所以循环取出来的数据,可能是多维数据,在数据分层很大的时候也许就会形成超过四层或者五层的数据,这样后面使用数据可能就会非常麻烦,当时我也是很苦恼不知道如何解决,因为返回的数据需要用数组来接受,然而每次返回的都是二维数组,就形成了很多维的数据,想了很久才想到,把返回的数据json一下变成字符串,就不存在返回二维数据了但是返回的还是多维数组。ok多维数组遍历成一维数组,数据没变,数组变成了二维数组就很舒服。
这样就完美的取出了所有的上级代理而且计算出了他们对应的利润值。