之前的文章介紹了項(xiàng)目中,代理商的所有下級(jí)代理商查詢,其查詢目的主要是為了,在上級(jí)代理商的利潤(rùn)變少了之后,所有下級(jí)代理商的利潤(rùn)也需要相對(duì)應(yīng)的變少,否則上級(jí)代理商的利潤(rùn)不夠支付下一級(jí)代理商的盈利所以不能存在這種情況,所以在發(fā)生這種情況的時(shí)候需要查詢所有下級(jí)代理商,但是真正需要的功能則是,下級(jí)代理商成功銷售一樣產(chǎn)品后,所產(chǎn)生的利潤(rùn)來(lái)分配給各個(gè)上級(jí),才是項(xiàng)目最主要的難點(diǎn)。
首先還是來(lái)分析思路,根據(jù)傳入的代理商id,來(lái)獲取當(dāng)前代理商的上級(jí),然后根據(jù)獲取的上級(jí)代理商,獲取他的上級(jí),一級(jí)加一級(jí)的往上面找,找到之后計(jì)算出各個(gè)級(jí)別代理商應(yīng)該獲取的利潤(rùn)就非常復(fù)雜。ok 首先數(shù)據(jù)表還是上一章文章中的數(shù)據(jù)表沒(méi)有變動(dòng),主要是查詢數(shù)據(jù)的思路需要反過(guò)來(lái)查詢。第一步,查詢出當(dāng)前的代理商數(shù)據(jù),取出當(dāng)前代理商數(shù)據(jù)對(duì)應(yīng)的上級(jí)代理商id,P_ID.第二部判斷他的上一級(jí)是不是頂級(jí)代理商,如果是頂級(jí),就不用在網(wǎng)上找,否則,就繼續(xù)往上找,其實(shí)如果一級(jí)一級(jí)找的話,相對(duì)來(lái)說(shuō)還是比較簡(jiǎn)單,男的點(diǎn)就是如果實(shí)現(xiàn)無(wú)級(jí)別查找,無(wú)論是哪一級(jí)別都可以查詢出所有上級(jí)。
查詢出來(lái)之后,還需要獲取對(duì)應(yīng)代理商應(yīng)獲取的利潤(rùn),因?yàn)槊總€(gè)代理商的利潤(rùn)有所不同,所以在表中沒(méi)有這個(gè)字段,每個(gè)利潤(rùn)需要根據(jù)上下級(jí)來(lái)獲取,也就是每個(gè)循環(huán)需要查詢兩個(gè)代理商的數(shù)據(jù),上級(jí)減下級(jí)獲取的就是上級(jí)的利潤(rùn),OK 下面附上實(shí)例代碼:
每個(gè)循環(huán)獲取的數(shù)據(jù),都是數(shù)組,所以循環(huán)取出來(lái)的數(shù)據(jù),可能是多維數(shù)據(jù),在數(shù)據(jù)分層很大的時(shí)候也許就會(huì)形成超過(guò)四層或者五層的數(shù)據(jù),這樣后面使用數(shù)據(jù)可能就會(huì)非常麻煩,當(dāng)時(shí)我也是很苦惱不知道如何解決,因?yàn)榉祷氐臄?shù)據(jù)需要用數(shù)組來(lái)接受,然而每次返回的都是二維數(shù)組,就形成了很多維的數(shù)據(jù),想了很久才想到,把返回的數(shù)據(jù)json一下變成字符串,就不存在返回二維數(shù)據(jù)了但是返回的還是多維數(shù)組。ok多維數(shù)組遍歷成一維數(shù)組,數(shù)據(jù)沒(méi)變,數(shù)組變成了二維數(shù)組就很舒服。
這樣就完美的取出了所有的上級(jí)代理而且計(jì)算出了他們對(duì)應(yīng)的利潤(rùn)值。