之前的文章介紹了項目中,代理商的所有下級代理商查詢,其查詢目的主要是為了,在上級代理商的利潤變少了之后,所有下級代理商的利潤也需要相對應的變少,否則上級代理商的利潤不夠支付下一級代理商的盈利所以不能存在這種情況,所以在發生這種情況的時候需要查詢所有下級代理商,但是真正需要的功能則是,下級代理商成功銷售一樣產品后,所產生的利潤來分配給各個上級,才是項目最主要的難點。
首先還是來分析思路,根據傳入的代理商id,來獲取當前代理商的上級,然后根據獲取的上級代理商,獲取他的上級,一級加一級的往上面找,找到之后計算出各個級別代理商應該獲取的利潤就非常復雜。ok 首先數據表還是上一章文章中的數據表沒有變動,主要是查詢數據的思路需要反過來查詢。第一步,查詢出當前的代理商數據,取出當前代理商數據對應的上級代理商id,P_ID.第二部判斷他的上一級是不是頂級代理商,如果是頂級,就不用在網上找,否則,就繼續往上找,其實如果一級一級找的話,相對來說還是比較簡單,男的點就是如果實現無級別查找,無論是哪一級別都可以查詢出所有上級。
查詢出來之后,還需要獲取對應代理商應獲取的利潤,因為每個代理商的利潤有所不同,所以在表中沒有這個字段,每個利潤需要根據上下級來獲取,也就是每個循環需要查詢兩個代理商的數據,上級減下級獲取的就是上級的利潤,OK 下面附上實例代碼:

每個循環獲取的數據,都是數組,所以循環取出來的數據,可能是多維數據,在數據分層很大的時候也許就會形成超過四層或者五層的數據,這樣后面使用數據可能就會非常麻煩,當時我也是很苦惱不知道如何解決,因為返回的數據需要用數組來接受,然而每次返回的都是二維數組,就形成了很多維的數據,想了很久才想到,把返回的數據json一下變成字符串,就不存在返回二維數據了但是返回的還是多維數組。ok多維數組遍歷成一維數組,數據沒變,數組變成了二維數組就很舒服。

這樣就完美的取出了所有的上級代理而且計算出了他們對應的利潤值。



