国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分賬結(jié)算方法和裝置與流程

      文檔序號:12272811閱讀:1137來源:國知局
      分賬結(jié)算方法和裝置與流程

      本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種分賬結(jié)算方法和裝置。



      背景技術(shù):

      O2O(Online To Offline,線上到線下)作為一種新型的電子商務(wù)模式,將線下的商務(wù)機會與互聯(lián)網(wǎng)結(jié)合,讓互聯(lián)網(wǎng)成為了線下交易的平臺。越來越多的服務(wù)提供商,比如餐飲商戶等,通過借助電子商務(wù)服務(wù)平臺進行線上交易。

      由于用戶購買商品的過程,可能涉及到多個角色參與,比如服務(wù)平臺、商戶、物流等等,從而,用戶購買商品的付款,需要在這些角色間分配。目前常用的一種結(jié)算方式是:由服務(wù)平臺將用戶的付款向其他角色進行支付,即與其他角色進行分賬結(jié)算。

      但是目前,服務(wù)平臺采用的分賬結(jié)算機制是T+1天分賬結(jié)算機制。服務(wù)平臺每天會統(tǒng)計前一天的訂單,并以訂單維度給商戶、物流等角色計算所需結(jié)算的分賬金額,以完成分賬記賬處理。



      技術(shù)實現(xiàn)要素:

      當(dāng)采用T+1天分賬結(jié)算機制時,服務(wù)平臺向比如商戶、物流等其他角色進行分賬結(jié)算具有明顯的延時特征,使得不論是服務(wù)平臺還是其他參與角色,都不能實時地獲知訂單的分賬結(jié)算結(jié)果。

      而對于商戶、物流等角色來說,實時地獲知自己的營收狀況的需求可能會比較強烈。比如,對于騎士來說,其可能在很想實時知道其接單量、收入情況;對于商戶來說,其可能一方面想要知道當(dāng)天的收入情況,另一方面,還想進一步了解當(dāng)天不同時段的收入情況,比如中午、晚上分別的收入情況。

      而上述的實時性需求,需要建立在服務(wù)平臺對訂單進行實時分賬處理的前提下,也就是說,服務(wù)平臺在接收到用戶觸發(fā)提交的訂單時,即實時地進行分賬結(jié)算處理。

      有鑒于此,本發(fā)明實施例提供一種分賬結(jié)算方法和裝置,用以實現(xiàn)對訂單的實時性分賬結(jié)算處理。

      本發(fā)明實施例提供一種分賬結(jié)算方法,包括:

      根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息,確定多個分賬賬戶;

      獲取與所述訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略;

      根據(jù)所述結(jié)算策略,向所述多個分賬賬戶分別記賬對應(yīng)的分賬金額。

      可選地,所述確定多個分賬賬戶之后,還包括:

      確定所述多個分賬賬戶中的第一類分賬賬戶和第二類分賬賬戶;

      若所述多個分賬賬戶中包括至少一個第一類分賬賬戶和至少一個第二類分賬賬戶,則所述根據(jù)所述結(jié)算策略,向所述多個分賬賬戶分別記賬對應(yīng)的分賬金額,包括:

      根據(jù)所述結(jié)算策略,獲取每個第一類分賬賬戶對應(yīng)的分賬金額和每個第二類分賬賬戶對應(yīng)的分賬金額;

      分別向所述至少一個第一類分賬賬戶和所述至少一個第二類分賬賬戶記賬對應(yīng)的分賬金額。

      可選地,所述分別向所述至少一個第一類分賬賬戶記賬對應(yīng)的分賬金額,包括:

      生成所述至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),所述結(jié)算任務(wù)中包括對應(yīng)的第一類分賬賬戶和分賬金額;

      將生成的結(jié)算任務(wù)發(fā)送至第一類分賬賬戶對應(yīng)的任務(wù)隊列中;

      遍歷所述任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的第一類分賬賬戶記賬對應(yīng)的分賬金額。

      可選地,所述分別向所述至少一個第二類分賬賬戶記賬對應(yīng)的分賬金額,包括:

      對于所述至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前所述第二類分賬賬戶Hi對應(yīng)有一個分賬金額,則根據(jù)所述一個分賬金額更新所述第二類分賬賬戶Hi的余額,并更新所述第二類分賬賬戶Hi對應(yīng)的標(biāo)號,所述標(biāo)號用于標(biāo)記一次記賬操作。

      可選地,所述分別向所述至少一個第二類分賬賬戶記賬對應(yīng)的分賬金額,包括:

      對于所述至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前所述第二類分賬賬戶Hi對應(yīng)有多個分賬金額,則獲取所述第二類分賬賬戶Hi對應(yīng)的第一標(biāo)號和余額;

      分別針對所述多個分賬金額進行如下的處理:

      根據(jù)對應(yīng)的分賬金額和所述第一標(biāo)號更新所述第二類分賬賬戶Hi的余額;

      若所述余額更新成功,則更新所述第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號為第二標(biāo)號;

      其中,余額更新成功的條件為所述第一標(biāo)號與所述第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號一致。

      本發(fā)明實施例提供一種分賬結(jié)算裝置,包括:

      第一確定模塊,用于根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息,確定多個分賬賬戶;

      獲取模塊,用于獲取與所述訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略;

      處理模塊,用于根據(jù)所述結(jié)算策略,向所述多個分賬賬戶分別記賬對應(yīng)的分賬金額。

      可選地,該分賬結(jié)算裝置還包括:

      第二確定模塊,用于確定所述多個分賬賬戶中的第一類分賬賬戶和第二類分賬賬戶;

      所述處理模塊,用于若所述第二確定模塊確定所述多個分賬賬戶中包括至少一個第一類分賬賬戶和至少一個第二類分賬賬戶,則根據(jù)所述結(jié)算策略,獲取每個第一類分賬賬戶對應(yīng)的分賬金額和每個第二類分賬賬戶對應(yīng)的分賬金額;分別向所述至少一個第一類分賬賬戶和所述至少一個第二類分賬賬戶記賬對應(yīng)的分賬金額。

      可選地,所述處理模塊包括:

      第二生成子模塊,用于生成所述至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),所述結(jié)算任務(wù)中包括對應(yīng)的第一類分賬賬戶和分賬金額;

      第二發(fā)送子模塊,用于將生成的結(jié)算任務(wù)發(fā)送至第一類分賬賬戶對應(yīng)的任務(wù)隊列中;

      第二處理子模塊,用于遍歷所述任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的第一類分賬賬戶記賬對應(yīng)的分賬金額。

      可選地,所述處理模塊包括:

      第一更新子模塊,用于對于所述至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前所述第二類分賬賬戶Hi對應(yīng)有一個分賬金額,則根據(jù)所述一個分賬金額更新所述第二類分賬賬戶Hi的余額,并更新所述第二類分賬賬戶Hi對應(yīng)的標(biāo)號,所述標(biāo)號用于標(biāo)記一次記賬操作。

      可選地,所述處理模塊包括:

      第一獲取子模塊,用于對于所述至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前所述第二類分賬賬戶Hi對應(yīng)有多個分賬金額,則獲取所述第二類分賬賬戶Hi對應(yīng)的第一標(biāo)號和余額;

      第二更新子模塊,用于分別針對所述多個分賬金額進行如下的處理:

      根據(jù)對應(yīng)的分賬金額和所述第一標(biāo)號更新所述第二類分賬賬戶Hi的余額;

      若所述余額更新成功,則更新所述第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號為第二標(biāo)號;

      其中,余額更新成功的條件為所述第一標(biāo)號與所述第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號一致。

      本發(fā)明實施例提供的分賬結(jié)算方法和裝置,當(dāng)服務(wù)平臺接收到訂單后,隨即根據(jù)該訂單的當(dāng)前狀態(tài)和訂單詳情信息,確定當(dāng)前對應(yīng)的分賬賬戶,并獲取與該訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略,進而根據(jù)該結(jié)算策略向確定出的分賬賬戶分別記賬對應(yīng)的分賬金額。本發(fā)明實施例中,服務(wù)平臺能夠根據(jù)接收到的訂單的詳情信息以及當(dāng)前訂單所處的處理狀態(tài)確定當(dāng)前需要向哪些分賬賬戶分別分賬多少金額,從而能夠?qū)崿F(xiàn)以訂單狀態(tài)的維度,實時地完成向相應(yīng)分賬賬戶的分賬處理,以便于不同分賬賬戶對應(yīng)的用戶能夠?qū)崟r了解分賬情況,提高了分賬處理的實時性。

      附圖說明

      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明實施例提供的分賬結(jié)算方法實施例一的流程圖;

      圖2為本發(fā)明實施例提供的分賬結(jié)算方法實施例二的流程圖;

      圖3為圖2所示實施例中步驟205的一種可選實現(xiàn)方式的流程圖;

      圖4為圖2所示實施例中步驟205的另一種可選實現(xiàn)方式的流程圖;

      圖5為圖1所示實施例中步驟103的一種可選實現(xiàn)方式的流程圖;

      圖6為圖1所示實施例中步驟103的另一種可選實現(xiàn)方式的流程圖;

      圖7為本發(fā)明實施例提供的分賬結(jié)算方法實施例七的流程圖;

      圖8為本發(fā)明實施例提供的分賬結(jié)算裝置實施例一的結(jié)構(gòu)示意圖;

      圖9為本發(fā)明實施例提供的分賬結(jié)算裝置實施例二的結(jié)構(gòu)示意圖;

      圖10為本發(fā)明實施例提供的分賬結(jié)算裝置實施例三的結(jié)構(gòu)示意圖;

      圖11為本發(fā)明實施例提供的分賬結(jié)算裝置實施例四的結(jié)構(gòu)示意圖;

      圖12為本發(fā)明實施例提供的分賬結(jié)算裝置實施例五的結(jié)構(gòu)示意圖;

      圖13為本發(fā)明實施例提供的分賬結(jié)算裝置實施例六的結(jié)構(gòu)示意圖;

      圖14為本發(fā)明實施例提供的分賬結(jié)算裝置實施例七的結(jié)構(gòu)示意圖。

      具體實施方式

      為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

      在本發(fā)明實施例中使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義,“多種”一般包含至少兩種,但是不排除包含至少一種的情況。

      應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。

      應(yīng)當(dāng)理解,盡管在本發(fā)明實施例中可能采用術(shù)語第一、第二、第三等來描述XXX,但這些XXX不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將XXX彼此區(qū)分開。例如,在不脫離本發(fā)明實施例范圍的情況下,第一XXX也可以被稱為第二XXX,類似地,第二XXX也可以被稱為第一XXX。

      取決于語境,如在此所使用的詞語“如果”、“若”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”或“響應(yīng)于檢測”。類似地,取決于語境,短語“如果確定”或“如果檢測(陳述的條件或事件)”可以被解釋成為“當(dāng)確定時”或“響應(yīng)于確定”或“當(dāng)檢測(陳述的條件或事件)時”或“響應(yīng)于檢測(陳述的條件或事件)”。

      還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的商品或者系統(tǒng)中還存在另外的相同要素。

      圖1為本發(fā)明實施例提供的分賬結(jié)算方法實施例一的流程圖,本實施例提供的該分賬結(jié)算方法可以由一分賬結(jié)算裝置來執(zhí)行,該分賬結(jié)算裝置可以實現(xiàn)為軟件,或者實現(xiàn)為軟件和硬件的組合,該分賬結(jié)算裝置可以集成設(shè)置在服務(wù)平臺側(cè)的設(shè)備中,比如服務(wù)器中,以下在不引起歧義的情況下,將集成該分賬結(jié)算裝置的設(shè)備稱為服務(wù)平臺。如圖1所示,該方法包括如下步驟:

      步驟101、根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息,確定多個分賬賬戶。

      步驟102、獲取與訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略。

      步驟103、根據(jù)結(jié)算策略向多個分賬賬戶分別記賬對應(yīng)的分賬金額。

      本實施例中的訂單可以是對應(yīng)于不同業(yè)務(wù)的訂單,比如物流類業(yè)務(wù)的訂單、外賣類業(yè)務(wù)的訂單等等,也就是說,來自不同業(yè)務(wù)的訂單都可以適用于本發(fā)明實施例提供的分賬結(jié)算方法。

      對于任意一個訂單來說,從終端用戶完成在線購買、支付而形成一個訂單開始,到該訂單最終被完成或取消為止,可能經(jīng)歷到多個不同的處理階段,從而該訂單可能會具有多種不同的狀態(tài),比如商家接單、騎士接單、完成等。由于訂單處于不同的狀態(tài)時參與訂單處理的角色可能不同,而每個處理角色可能對應(yīng)于一個分賬賬戶,需要對訂單分賬,因此,本實施例中,可以考慮訂單的當(dāng)前狀態(tài)來對訂單進行實時分賬處理。

      具體來說,要實現(xiàn)對訂單的分賬處理,一方面需要知道分賬賬戶是什么,另一方面需要知道向每個分賬賬戶分賬多少金額。

      針對第一方面,即針對分賬賬戶的確定:本實施例中,根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息來確定在當(dāng)前訂單狀態(tài)下參與分賬的至少一個分賬賬戶。

      其中,訂單的當(dāng)前狀態(tài)比如為用戶下單、商戶接單、騎士接單、取消訂單、完成訂單等多種可能的狀態(tài)。訂單的可能狀態(tài)可以根據(jù)不同業(yè)務(wù)可能涉及到的處理環(huán)節(jié)確定。

      其中,訂單詳情信息中比如可以包括商戶標(biāo)識、業(yè)務(wù)標(biāo)識、購買物品信息、用戶付款金額等信息。

      另外,可選地,服務(wù)平臺中可以預(yù)先存儲有訂單處于不同狀態(tài)時,需要向哪些分賬賬戶進行分賬,即存儲有訂單狀態(tài)與分賬賬戶類別間的對應(yīng)關(guān)系。另外可選地,在服務(wù)平臺集成提供多種不同業(yè)務(wù)類型的業(yè)務(wù)服務(wù)時,服務(wù)平臺可以針對每種業(yè)務(wù)類型分別進行上述對應(yīng)關(guān)系的存儲。值得說明的是,此時的“哪些分賬賬戶”不是具體的分賬賬戶標(biāo)識,而應(yīng)理解為哪些類別的分賬賬戶。

      因此,實際應(yīng)用中,可選地,可以根據(jù)接收到的訂單的當(dāng)前狀態(tài),確定與之對應(yīng)的對應(yīng)關(guān)系,從而獲知需要向哪些類別的分賬賬戶分賬,另外,根據(jù)訂單詳情信息確定對應(yīng)的具體的分賬賬戶,即分賬賬戶標(biāo)識。

      舉例來說,假設(shè)針對訂單1來說,其當(dāng)前處于狀態(tài)1,此時對應(yīng)的訂單詳細信息中包含有業(yè)務(wù)標(biāo)識1,商戶1?;诖?,服務(wù)平臺根據(jù)狀態(tài)1和業(yè)務(wù)標(biāo)識1確定當(dāng)前需要向某平臺賬戶和商戶賬戶進行分賬處理,進而,結(jié)合訂單詳情信息中包含的商戶1,確定商戶賬戶為賬戶1,根據(jù)本地存儲的某平臺賬戶的賬戶標(biāo)識確定賬戶2。該舉例中的某平臺賬戶是指服務(wù)平臺的某個賬戶,因為一般而言,服務(wù)平臺為商戶、終端用戶提供服務(wù),也需要對終端用戶的付款金額進行分賬。

      綜上,可選地,服務(wù)平臺可以基于訂單的當(dāng)前狀態(tài)確定向哪些類別的賬戶分賬,基于訂單詳情信息確定該“哪些類別”對應(yīng)的具體分賬賬戶標(biāo)識;或者,可選地,服務(wù)平臺可以基于訂單的當(dāng)前狀態(tài)和訂單的業(yè)務(wù)標(biāo)識確定向哪些類別的賬戶分賬,基于訂單詳情信息確定該“哪些類別”對應(yīng)的具體分賬賬戶標(biāo)識。

      針對第二方面,即針對分賬金額的確定:本實施例中,服務(wù)平臺中預(yù)先存儲有與各訂單狀態(tài)對應(yīng)的結(jié)算策略,從而,基于當(dāng)前的訂單狀態(tài),獲取與之對應(yīng)的結(jié)算策略,從而,根據(jù)該結(jié)算策略可以計算確定每個分賬賬戶的分賬金額。

      其中,結(jié)算策略可以簡單理解為,其描述了向不同類別的分賬賬戶分賬多少金額的計算方式。仍以上述舉例來說,與訂單1的當(dāng)前狀態(tài)1對應(yīng)的結(jié)算策略中描述了向某平臺賬戶分賬的計算方式,以及向商戶賬戶分賬的計算方式。

      實際應(yīng)用中,當(dāng)獲取與訂單當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略后,可以將訂單詳情信息中的用戶付款金額作為輸入,即可根據(jù)該結(jié)算策略得到向各類別分賬賬戶記賬多少分賬金額。

      由于已經(jīng)根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息確定了參與分賬的各分賬賬戶,從而,在根據(jù)上述獲取的結(jié)算策略得到向各類別分賬賬戶記賬多少分賬金額之后,即可確定每個具體的分賬賬戶對應(yīng)的分賬金額,向每個分賬賬戶記賬相對應(yīng)的分賬金額,即完成了當(dāng)前訂單在當(dāng)前狀態(tài)的分賬結(jié)算處理。

      本發(fā)明實施例中,可選地,可以針對訂單的不同狀態(tài),制定相應(yīng)的結(jié)算策略,將每個結(jié)算策略封裝為一個功能函數(shù),提供一個結(jié)算函數(shù)接口供服務(wù)平臺調(diào)用,服務(wù)平臺中從而可以存儲有訂單狀態(tài)與結(jié)算接口間的對應(yīng)關(guān)系。從而,服務(wù)平臺可以根據(jù)接收到的訂單的當(dāng)前狀態(tài),確定與訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算接口,調(diào)用該結(jié)算接口,以獲取與訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略。

      另外,值得說明的是,當(dāng)服務(wù)平臺提供了多種不同的業(yè)務(wù)時,不同的業(yè)務(wù)下可能具有相同的訂單狀態(tài)。因此,為了兼顧不同業(yè)務(wù)的同一訂單狀態(tài),在同一訂單狀態(tài)對應(yīng)的結(jié)算策略中,可以包含不同業(yè)務(wù)的結(jié)算子策略,相當(dāng)于每個業(yè)務(wù)對應(yīng)有一個函數(shù)分支。從而,獲取與訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略可以實現(xiàn)為:根據(jù)訂單對應(yīng)的業(yè)務(wù)標(biāo)識以及訂單狀態(tài),獲取對應(yīng)的結(jié)算策略。

      本實施例中,當(dāng)服務(wù)平臺接收到訂單后,隨即根據(jù)該訂單的當(dāng)前狀態(tài)和訂單詳情信息,確定當(dāng)前對應(yīng)的分賬賬戶,并獲取與該訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略,進而根據(jù)該結(jié)算策略向確定出的分賬賬戶分別記賬對應(yīng)的分賬金額。從而,本實施例中,服務(wù)平臺能夠根據(jù)接收到的訂單的詳情信息以及當(dāng)前訂單所處的處理狀態(tài)確定當(dāng)前需要向哪些分賬賬戶分別分賬多少金額,從而能夠?qū)崿F(xiàn)以訂單狀態(tài)的維度,實時地完成向相應(yīng)分賬賬戶的分賬處理,以便于不同分賬賬戶對應(yīng)的用戶能夠?qū)崟r了解分賬情況,提高了分賬處理的實時性。

      實際應(yīng)用中,由于服務(wù)平臺基本上針對所有訂單都會進行分賬,即相當(dāng)于抽取一部分傭金,因此,當(dāng)服務(wù)平臺接收到大量的訂單時,相對于各個商戶、騎士等其他角色來說,向服務(wù)平臺的分賬結(jié)算數(shù)量是與接收到的訂單數(shù)量相當(dāng)?shù)?。舉例來說,假設(shè)服務(wù)平臺先后接收到1000個訂單,在對這1000個訂單進行分賬處理時,服務(wù)平臺可能累計至少需要1000次分賬到平臺賬戶,而這1000個訂單對應(yīng)于同一個商戶的概率基本是不太可能的。因此,針對平臺賬戶和非平臺賬戶(比如商戶賬戶、騎士賬戶等)來說,平臺賬戶的分賬并發(fā)數(shù)據(jù)量是很大的,相反地,非平臺賬戶的分賬并發(fā)數(shù)據(jù)量不大。

      基于此,本發(fā)明實施例提出了基于分賬賬戶的類型,采用不同的記賬方式向各分賬賬戶進行記賬的處理方式。其中,分賬賬戶的類型包括兩種類型,分別為以下實施例提及的第一類分賬賬戶和第二類分賬賬戶。值得說明的是,此處所說的賬戶類型與圖1所示實施例中提及的“哪些類別的分賬賬戶”不同,具體可以結(jié)合上下文來理解。

      在不引起歧義的情況下,可以理解第一類分賬賬戶為平臺賬戶、第二類分賬賬戶為非平臺賬戶,比如商戶的賬戶、騎士的賬戶、供應(yīng)商的賬戶、代理商的賬戶等等。另外可選地,平臺賬戶還可以基于訂單的不同狀態(tài)、對應(yīng)業(yè)務(wù)標(biāo)識具體分為多種不同的賬戶。

      下面,首先結(jié)合圖2所示實施例,概述在考慮分賬賬戶類型的情況下,分別針對不同類型的分賬賬戶進行分賬記賬處理,進而,結(jié)合圖3-圖4詳細介紹分別針對不同類型的分賬賬戶進行分賬記賬處理的過程。

      圖2為本發(fā)明實施例提供的分賬結(jié)算方法實施例二的流程圖,如圖2所示,該方法包括如下步驟:

      步驟201、根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息,確定多個分賬賬戶。

      步驟202、獲取與訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略。

      前述步驟與圖1所示實施例相同,不再贅述。

      步驟203、確定多個分賬賬戶中的第一類分賬賬戶和第二類分賬賬戶。

      具體來說,當(dāng)根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息確定多個具體的分賬賬戶之后,由于服務(wù)平臺中可以存儲有第一類即平臺類賬戶,因此,可以從多個分賬賬戶中確定出第一類分賬賬戶,那么多個分賬賬戶中剩下的分賬賬戶即為第二類分賬賬戶。

      步驟204、若多個分賬賬戶中包括至少一個第一類分賬賬戶和至少一個第二類分賬賬戶,則根據(jù)結(jié)算策略,獲取每個第一類分賬賬戶對應(yīng)的分賬金額和每個第二類分賬賬戶對應(yīng)的分賬金額。

      步驟205、分別向至少一個第一類分賬賬戶和至少一個第二類分賬賬戶記賬對應(yīng)的分賬金額。

      值得說明的是,步驟204中,若多個分賬賬戶中包括至少一個第一類分賬賬戶和至少一個第二類分賬賬戶的限制條件僅僅是為了說明當(dāng)分賬賬戶中存在第一類和第二類分賬賬戶時,需要針對每類分賬賬戶進行后續(xù)的分賬處理。而實際應(yīng)用中,可能當(dāng)前的訂單狀態(tài)對應(yīng)的分賬賬戶僅為某一類分賬賬戶,此時,則僅針對該類分賬賬戶進行后續(xù)的分賬處理即可,比如假設(shè)多個分賬賬戶都為第二類分賬賬戶,則步驟204和步驟205適應(yīng)性變?yōu)椋焊鶕?jù)結(jié)算策略,獲取每個第二類分賬賬戶對應(yīng)的分賬金額,分別向各第二類分賬賬戶記賬對應(yīng)的分賬金額。

      下面在假設(shè)多個分賬賬戶中包含至少一個第一類分賬賬戶和至少一個第二類分賬賬戶的情況下,結(jié)合圖3和圖4具體說明圖2所示實施例中步驟205的實現(xiàn)方式。

      圖3為圖2所示實施例中步驟205的一種可選實現(xiàn)方式的流程圖,如圖3所示,可以包括如下步驟:

      步驟301、生成至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),至少一個第二類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),每個結(jié)算任務(wù)中包括對應(yīng)的分賬賬戶和分賬金額。

      步驟302、將至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù)發(fā)送至第一任務(wù)隊列中,將至少一個第二類分賬賬戶分別對應(yīng)的結(jié)算任務(wù)發(fā)送至第二任務(wù)隊列中。

      步驟303、分別遍歷第一任務(wù)隊列和第二任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的分賬賬戶記賬對應(yīng)的分賬金額。

      本實施例中,針對第一類分賬賬戶和第二類分賬賬戶都是采用任務(wù)隊列的機制進行分賬處理,其中,任務(wù)隊列的機制可以理解為緩存機制。

      具體來說,因為服務(wù)平臺可能同一時間或很短時間內(nèi)可能接收到大量的訂單,因此第一類即平臺類的分賬賬戶可能面臨高并發(fā)數(shù)據(jù)量的分賬處理任務(wù)。為了對大量的分賬任務(wù)進行有效的管理,同時為了避免同時的大量分賬任務(wù)對存儲有平臺賬戶的數(shù)據(jù)庫的寫入而容易引起寫入失敗、數(shù)據(jù)遺漏等問題,本實施例中針對第一類分賬賬戶提供了任務(wù)隊列的機制。

      另外,雖然實際應(yīng)用中,相對于作為平臺類分賬賬戶的第一類分賬賬戶,諸如商戶、供應(yīng)商、騎士等第二類分賬賬戶的并發(fā)分賬數(shù)據(jù)量低很多,但是,還是會存在基本同一時間面向同一第二類分賬賬戶的多個分賬處理任務(wù)的情況,因此,可選地,本實施例中針對第二類分賬賬戶也提供了任務(wù)隊列的分賬處理機制。

      具體來說,當(dāng)服務(wù)平臺確定出多個分賬賬戶中的各第一類分賬賬戶和各第二類分賬賬戶后,生成每個第一類分賬賬戶對應(yīng)的結(jié)算任務(wù)以及每個第二類分賬賬戶對應(yīng)的結(jié)算任務(wù),其中,每個結(jié)算任務(wù)中包括對應(yīng)的分賬賬戶和分賬金額。進而,將各第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù)發(fā)送至第一任務(wù)隊列中,將各第二類分賬賬戶分別對應(yīng)的結(jié)算任務(wù)發(fā)送至第二任務(wù)隊列中。

      其中,可選地,可以是每個分賬賬戶對應(yīng)于一個任務(wù)隊列,也可以是一類分賬賬戶對應(yīng)于一個任務(wù)隊列。

      本實施例中,第一類分賬賬戶對應(yīng)于第一任務(wù)隊列,第二類分賬賬戶對應(yīng)于第二任務(wù)隊列,即將各第一類分賬賬戶對應(yīng)的全部結(jié)算任務(wù)發(fā)送至第一隊列,將各第二類分賬賬戶對應(yīng)的全部結(jié)算任務(wù)發(fā)送至第二任務(wù)隊列。

      可選地,也可以每一個第一類分賬賬戶對應(yīng)于一個任務(wù)隊列,全部第二類分賬賬戶對應(yīng)于一個任務(wù)隊列。

      服務(wù)平臺可以通過不同的線程分別遍歷第一任務(wù)隊列和第二任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的分賬賬戶記賬對應(yīng)的分賬金額??蛇x地,針對同時有多個結(jié)算任務(wù)進入到同一任務(wù)隊列的情況,服務(wù)平臺可以隨機地取出一個結(jié)算任務(wù)。

      本實施例中,通過任務(wù)隊列機制,可以保證即使是同時到來的多個訂單,甚至是針對同一分賬賬戶的多個結(jié)算任務(wù),也會被逐個被進行處理,因為任務(wù)隊列是逐個輸出結(jié)算任務(wù)的,避免多個結(jié)算任務(wù)同時記賬寫入同一分賬賬戶容易引起的錯誤。

      圖3所示實施例中,對于第一類分賬賬戶和第二類分賬賬戶使用了相同的分賬處理機制,即任務(wù)隊列機制。實際應(yīng)用中,正如前述所說,第二類分賬賬戶的并發(fā)分賬數(shù)據(jù)量相對于第一類分賬賬戶來說少很多很多,基于此,可以對第一類分賬賬戶和第二類分賬賬戶采用差異化的分賬處理機制進行處理。圖4所示實施例即為分別針對第一類分賬賬戶和第二類分賬賬戶進行差異化分賬處理的一種可選實現(xiàn)方式。

      圖4為圖2所示實施例中步驟205的另一種可選實現(xiàn)方式的流程圖,如圖4所示,可以包括如下步驟:

      步驟401、生成至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),結(jié)算任務(wù)中包括對應(yīng)的第一類分賬賬戶和分賬金額。

      步驟402、將生成的結(jié)算任務(wù)發(fā)送至第一類分賬賬戶對應(yīng)的任務(wù)隊列中。

      步驟403、遍歷任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù)向?qū)?yīng)的第一類分賬賬戶記賬對應(yīng)的分賬金額。

      步驟401-403為分別向各第一類分賬賬戶記賬對應(yīng)的分賬金額的處理過程,本實施例中,對于第一類分賬賬戶來說,仍采用任務(wù)隊列的機制。

      可選地,可以針對每個第一類分賬賬戶設(shè)置一一對應(yīng)的任務(wù)隊列,也可以針對多個第一類分賬賬戶設(shè)置一個任務(wù)隊列。本實施例中,以至少一個第一類分賬賬戶對應(yīng)于同一個任務(wù)隊列為例,但是并不以此為限。

      對于各第一類分賬賬戶的處理參見圖3所示實施例,在此不再贅述。

      如下的步驟404-406為分別向各第二類分賬賬戶記賬對應(yīng)的分賬金額的處理過程,本實施例中,對于每個第二類分賬賬戶,采用樂觀鎖的機制進行分賬處理。

      步驟404、對于至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前第二類分賬賬戶Hi對應(yīng)有一個分賬金額,則根據(jù)一個分賬金額更新第二類分賬賬戶Hi的余額,并更新第二類分賬賬戶Hi對應(yīng)的標(biāo)號,標(biāo)號用于標(biāo)記一次記賬操作。

      本實施例中,針對各個第二類分賬賬戶進行并行的分賬處理,可以理解為服務(wù)平臺為每個第二類分賬賬戶配置一個線程進行分賬處理。

      針對任一第二類分賬賬戶Hi來說,如果同一時刻,僅有一個訂單需要向該第二類分賬賬戶Hi進行分賬,則直接執(zhí)行更新該第二類分賬賬戶Hi的余額的過程即可。

      具體舉例來說,此時余額更新過程為:將第二類分賬賬戶Hi對應(yīng)的分賬金額50元寫入到第二類分賬賬戶Hi中,使得第二類分賬賬戶Hi中的余額進行加50元的運算,從之前的X元變?yōu)楦潞蟮腦+50元。

      另外,本實施例中,為了避免多個訂單同時向同一第二類分賬賬戶的分賬所引起的記賬錯誤,為每個第二類分賬賬戶設(shè)置一個標(biāo)號位,用于標(biāo)記每一次的記賬操作。該標(biāo)號位可以實現(xiàn)為編號,即沒完成一次記賬操作,編號執(zhí)行加一操作。從而,上述舉例過程中,在進行分賬金額更新第二類分賬賬戶Hi的余額之后,隨即更新當(dāng)前第二類分賬賬戶Hi的標(biāo)號。

      具體地,上述余額更新過程在實際應(yīng)用中可以實現(xiàn)為:首先,讀取第二類分賬賬戶Hi的當(dāng)前余額X元以及當(dāng)前的標(biāo)號Y,其次,執(zhí)行余額更新和標(biāo)號更新的操作,即當(dāng)前余額X+50,標(biāo)號Y+1,之后,將更新后的結(jié)果寫入第二類分賬賬戶Hi中,完成記賬。

      步驟405、對于至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前第二類分賬賬戶Hi對應(yīng)有多個分賬金額,則獲取第二類分賬賬戶Hi對應(yīng)的第一標(biāo)號和余額。

      步驟406、分別針對多個分賬金額進行如下的處理:根據(jù)對應(yīng)的分賬金額和第一標(biāo)號更新第二類分賬賬戶Hi的余額;若余額更新成功,則更新第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號為第二標(biāo)號。

      其中,余額更新成功的條件為第一標(biāo)號與第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號一致。

      針對任一第二類分賬賬戶Hi來說,如果同一時刻,有多個訂單需要向該第二類分賬賬戶Hi進行分賬,則多個訂單更新該第二類分賬賬戶Hi的余額的過程如下:

      首先,讀取當(dāng)前第二類分賬賬戶Hi的余額和第一標(biāo)號,進而,針對多個分賬金額來說,分別進行嘗試更新第二類分賬賬戶Hi的余額和第一標(biāo)號的處理。

      值得說明的是,第二類分賬賬戶Hi存儲于某數(shù)據(jù)庫中,對該第二類分賬賬戶Hi進行讀取、寫入的操作受限于數(shù)據(jù)庫的訪問限制。一般來說,數(shù)據(jù)庫可以允許同時讀取操作,但是不允許同時寫入操作。因此,當(dāng)存在多個訂單需要向同一第二類分賬賬戶Hi進行分賬時,從多個訂單的角度來說,可以同時讀取到相同的第二類分賬賬戶Hi的余額和第一標(biāo)號,但是這多個訂單不能同時對該第二類分賬賬戶Hi執(zhí)行余額和標(biāo)號更新操作,即不能同時執(zhí)行寫入的操作。也就是說,該多個訂單對應(yīng)的上述多個分賬金額不能被同時執(zhí)行更新第二類分賬賬戶Hi的余額和第一標(biāo)號的操作。

      可選地,對于上述多個分賬金額來說,同一時刻,可以基于一定的競爭策略從中選擇一個分賬金額進行對第二類分賬賬戶Hi的更新操作,也可以隨機從中選擇一個分賬金額對第二類分賬賬戶Hi進行更新操作。從而控制同一時刻只有一個分賬金額能夠更新成功,其他分賬金額的更新操作將會失敗。

      對于當(dāng)前時刻競爭到一個分賬金額來說,其更新操作的過程為:以獲取到的第二類分賬賬戶Hi的余額和第一標(biāo)號嘗試更新第二類分賬賬戶Hi,如果第一標(biāo)號與當(dāng)前時刻第二類分賬賬戶Hi的標(biāo)號一致,則將第二類分賬賬戶Hi的余額加上該分賬金額,并更新當(dāng)前第二類分賬賬戶Hi的標(biāo)號為第二標(biāo)號。

      下面針對本實施例中的多個分賬金額同時要對同一第二類分賬賬戶Hi進行分賬的過程進行舉例說明。

      假設(shè)同一時刻服務(wù)平臺接收到需要向同一第二類分賬賬戶Hi進行分賬處理的兩個訂單,分別為訂單1、訂單2,并且假設(shè)訂單1向第二類分賬賬戶Hi的分賬金額為A,訂單2向第二類分賬賬戶Hi的分賬金額為B。服務(wù)平臺在確定上述兩個分賬金額之后,讀取第二類分賬賬戶Hi的當(dāng)前余額為X,標(biāo)號位Y。在上述假設(shè)條件下,正常情況下,第二類分賬賬戶Hi的最終余額更新結(jié)果應(yīng)該為X+A+B。

      為了能夠更直觀地理解本實施例中標(biāo)號的作用,首先說明在不考慮標(biāo)號的情況下,可能會出現(xiàn)的第二類分賬賬戶Hi余額更新錯誤情況:由于分賬金額A和分賬金額B同時達到,如果這兩個分賬金額同時更新第二類分賬賬戶Hi成功,那么對于分賬金額A來說,第二類分賬賬戶Hi的余額更新結(jié)果為X+A,對于分賬金額B來說,第二類分賬賬戶Hi的余額更新結(jié)果為X+B。也就是說,這兩個分賬金額都是基于X進行余額更新的,那么最終第二類分賬賬戶Hi的余額更新結(jié)果不管是X+A,還是X+B,都是錯誤的。

      本實施例中,在引入標(biāo)號之后,更新過程為:針對分賬金額A和分賬金額B來說,當(dāng)服務(wù)平臺讀取到第二類分賬賬戶Hi的當(dāng)前余額X和第一標(biāo)號Y之后,可以視為服務(wù)平臺將分賬金額A,當(dāng)前余額X和第一標(biāo)號Y關(guān)聯(lián)在一起,作為分賬金額A的結(jié)算任務(wù);將分賬金額B,當(dāng)前余額X和第一標(biāo)號Y關(guān)聯(lián)在一起,作為分賬金額B的結(jié)算任務(wù)。

      假設(shè)分賬金額A對應(yīng)的結(jié)算任務(wù)優(yōu)先競爭到更新第二類分賬賬戶Hi的余額的機會,或者說服務(wù)平臺首先確定分賬金額A對應(yīng)的結(jié)算任務(wù)優(yōu)先進行更新第二類分賬賬戶Hi的余額的操作。那么針對分賬金額A來說,在進行更新操作的過程中,首先比較分賬金額A的結(jié)算任務(wù)中包含的第一標(biāo)號Y與第二類分賬賬戶Hi的當(dāng)前標(biāo)號是否一致,由于第一標(biāo)號Y是服務(wù)平臺確定存在同時向同一第二類分賬賬戶Hi進行分賬的分賬金額A和分賬金額B的情況下隨即讀取到的,而分賬金額A又獲得優(yōu)先更新操作的權(quán)限,因此,第二類分賬賬戶Hi的當(dāng)前標(biāo)號仍為第一標(biāo)號Y,因此,分賬金額A更新第二類分賬賬戶Hi的余額X將會成功,將第二類分賬賬戶Hi的余額更新為X+A,標(biāo)號更新為第二標(biāo)號Y+1。

      之后對于分賬金額B來說,其以包含分賬金額B、余額X、第一標(biāo)號Y的結(jié)算任務(wù)更新第二類分賬賬戶Hi時,比較發(fā)現(xiàn)其結(jié)算任務(wù)中的第一標(biāo)號Y與當(dāng)前第二類分賬賬戶Hi的第二標(biāo)號Y+1不一致,因此,其以分賬金額B更新余額X為X+B的操作不成功。

      此時,針對分賬金額B來說,當(dāng)其更新操作不成功時,可以重新讀取第二類分賬賬戶Hi的當(dāng)前余額和標(biāo)號,即讀取到余額為X+A,標(biāo)號為Y+1,進而,更新分賬金額B的結(jié)算任務(wù)為包含分賬金額B,第二類分賬賬戶Hi的當(dāng)前余額為X+A,第二類分賬賬戶Hi的標(biāo)號為Y+1,以更新后的結(jié)算任務(wù)再更新第二類分賬賬戶Hi的余額。由于此時分賬金額B對應(yīng)的讀取到的標(biāo)號為Y+1,與當(dāng)前第二類分賬賬戶Hi的標(biāo)號一致,則更新成功,第二類分賬賬戶Hi的余額被更新為X+A+B。

      綜上,本實施例中,針對第一類分賬賬戶和第二類分賬賬戶進行差異化的分賬處理,即針對第一類分賬賬戶存在高并發(fā)分賬數(shù)據(jù)量的情況,采用任務(wù)隊列的機制進行分賬處理,針對第二類分賬賬戶存在少量并發(fā)分賬數(shù)據(jù)量的情況,采用標(biāo)號校驗或者說采用樂觀鎖的機制進行分賬處理,保證了分賬賬戶記賬結(jié)果的準(zhǔn)確、可靠。

      圖2-圖4所示實施例中,對與當(dāng)前接收到的訂單相對應(yīng)的多個分賬賬戶,從區(qū)分賬戶類型的角度,說明了對每種賬戶類型的分賬賬戶進行差異化分賬處理的過程。但是,上述區(qū)分賬戶類型,僅為本發(fā)明實施例中的一種可選的實現(xiàn)方式,實際上,對于多個分賬賬戶,也可以進行無差異化的分賬處理,即不分區(qū)賬戶類型的分賬處理。

      下面結(jié)合圖5和圖6實施例,介紹兩種對多個分賬賬戶進行無差異化分賬處理的可選實現(xiàn)方式。

      圖5為圖1所示實施例中步驟103的一種可選實現(xiàn)方式的流程圖,如圖5所示,包括如下步驟:

      步驟501、根據(jù)結(jié)算策略,計算多個分賬賬戶分別對應(yīng)的分賬金額。

      步驟502、生成與多個分賬賬戶分別對應(yīng)的結(jié)算任務(wù),每個結(jié)算任務(wù)中包括對應(yīng)的分賬賬戶和分賬金額。

      步驟503、將多個結(jié)算任務(wù)發(fā)送至任務(wù)隊列中。

      步驟504、遍歷任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的分賬賬戶記賬對應(yīng)的分賬金額。

      本實施例中,采用任務(wù)隊列的機制,對面向每個分賬賬戶的結(jié)算任務(wù)進行統(tǒng)一的處理,以保證對每個分賬賬戶的分賬處理結(jié)果準(zhǔn)確、可靠。具體地處理過程可以參見圖3所示實施例中的描述,在此不再贅述,區(qū)別僅在于不區(qū)分多個分賬賬戶的賬戶類型。

      圖6為圖1所示實施例中步驟103的另一種可選實現(xiàn)方式的流程圖,如圖6所示,包括如下步驟:

      步驟601、根據(jù)結(jié)算策略,計算多個分賬賬戶對應(yīng)的分賬金額。

      步驟602、對于多個分賬賬戶中的任一分賬賬戶Hi,若當(dāng)前分賬賬戶Hi對應(yīng)有一個分賬金額,則根據(jù)一個分賬金額更新分賬賬戶Hi的余額,并更新分賬賬戶Hi對應(yīng)的標(biāo)號,標(biāo)號用于標(biāo)記一次記賬操作。

      步驟603、若當(dāng)前分賬賬戶Hi對應(yīng)有多個分賬金額,則獲取分賬賬戶Hi對應(yīng)的第一標(biāo)號和余額。

      步驟604、分別針對多個分賬金額進行如下的處理:根據(jù)對應(yīng)的分賬金額和第一標(biāo)號更新分賬賬戶Hi的余額;若余額更新成功,則更新分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號為第二標(biāo)號。

      其中,余額更新成功的條件為第一標(biāo)號與分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號一致。

      本實施例中,采用標(biāo)號的機制對每個分賬賬戶進行分賬處理,以保證對每個分賬賬戶的分賬處理結(jié)果準(zhǔn)確、可靠。具體地處理過程可以參見圖4所示實施例中的描述,在此不再贅述,區(qū)別僅在于不區(qū)分多個分賬賬戶的賬戶類型。

      圖7為本發(fā)明實施例提供的分賬結(jié)算方法實施例七的流程圖,如圖7所示,在圖1所示實施例基礎(chǔ)上,步驟103之后,該方法還可以包括如下步驟:

      步驟701、生成與多個分賬賬戶分別對應(yīng)的記賬明細。

      步驟702、將記賬明細分別存儲到第一數(shù)據(jù)庫和第二數(shù)據(jù)庫,其中,第一數(shù)據(jù)庫具有預(yù)設(shè)時間長度的存儲時效。

      本實施例中,為了便于后續(xù)的對賬、查詢等處理,可以記錄每次分賬操作,即生成與多個分賬賬戶分別對應(yīng)的記賬明細。其中,記賬明細中比如可以包括記賬時間、金額以及訂單相關(guān)信息等等。

      可選地,可以將每個分賬賬戶對應(yīng)的記賬明細集中存儲在同一數(shù)據(jù)庫中,在該數(shù)據(jù)庫中,不同分賬賬戶對應(yīng)的記賬明細分別存儲。

      另外可選地,本實施例中,可以設(shè)置兩個不同的數(shù)據(jù)庫來存儲各分賬賬戶的分賬明細,其中一個數(shù)據(jù)庫用于近乎永久性存儲分賬明細,另一個數(shù)據(jù)庫用于短時間內(nèi)存儲分賬明細。

      其中可選地,用于短時間存儲分賬明細的第一數(shù)據(jù)庫可以實現(xiàn)為mysql數(shù)據(jù)庫,該數(shù)據(jù)庫中存儲的數(shù)據(jù)的存儲時效比如為1個月。第二數(shù)據(jù)庫比如可以實現(xiàn)為Elasticsearch數(shù)據(jù)庫。

      當(dāng)生成一個分賬明細時,將該分賬明細同時存入第一數(shù)據(jù)庫和第二數(shù)據(jù)庫,即存入第一數(shù)據(jù)庫中與對應(yīng)的分賬賬戶相應(yīng)的存儲空間中,存入第二數(shù)據(jù)庫中與對應(yīng)的分賬賬戶相應(yīng)的存儲空間中。

      步驟703、接收查詢請求,查詢請求中包括查詢時間段。

      步驟704、根據(jù)查詢時間段從第一數(shù)據(jù)庫和第二數(shù)據(jù)庫中確定目標(biāo)數(shù)據(jù)庫。

      當(dāng)以上述第一數(shù)據(jù)庫和第二數(shù)據(jù)庫存儲各分賬賬戶的分賬明細時,比如商戶、騎士等用戶想要查詢某時間段內(nèi)其收入情況時,觸發(fā)向服務(wù)平臺發(fā)送查詢請求。該查詢請求中可以包含需要查詢的賬戶標(biāo)識以及想要查詢的時間段,即查詢哪個賬戶的哪個時間段內(nèi)的分賬明細。

      服務(wù)平臺繼而根據(jù)查詢請求中攜帶的查詢時間段,以及當(dāng)前第一數(shù)據(jù)庫中存儲的分賬明細的存儲時效,確定從哪個數(shù)據(jù)庫中獲取相應(yīng)的分賬明細來響應(yīng)該查詢請求。具體地,如果查詢時間段是距當(dāng)前時刻一個月內(nèi)的時間段,則確定第一數(shù)據(jù)庫為目標(biāo)數(shù)據(jù)庫,從第一數(shù)據(jù)庫中查詢獲得對應(yīng)的分賬明細,相反地,若查詢時間段超出了距當(dāng)前時刻的一個月時限,則確定第二數(shù)據(jù)庫為目標(biāo)數(shù)據(jù)庫,從第二數(shù)據(jù)庫中查詢獲得對應(yīng)的分賬明細。

      本實施例中,設(shè)置兩種具有不同存儲時效的數(shù)據(jù)庫來存儲各分賬賬戶的分賬明細。由于一般地,用戶想要查詢的是短時間內(nèi)的收入情況,通過這兩種數(shù)據(jù)庫的設(shè)置,可以提高用戶查詢短時間內(nèi)收入情況的查詢處理效率。

      以下將詳細描述本發(fā)明的一個或多個實施例的分賬結(jié)算裝置。這些分賬結(jié)算裝置可以被實現(xiàn)在服務(wù)器的基礎(chǔ)架構(gòu)中,也可以被實現(xiàn)在服務(wù)器和客戶端的交互系統(tǒng)中。本領(lǐng)域技術(shù)人員可以理解,這些分賬結(jié)算裝置均可使用市售的硬件組件通過本方案所教導(dǎo)的步驟進行配置來構(gòu)成。

      圖8為本發(fā)明實施例提供的分賬結(jié)算裝置實施例一的結(jié)構(gòu)示意圖,如圖8所示,該分賬結(jié)算裝置包括:第一確定模塊11、獲取模塊12、處理模塊13。

      第一確定模塊11,用于根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息,確定多個分賬賬戶。

      獲取模塊12,用于獲取與所述訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略。

      處理模塊13,用于根據(jù)所述結(jié)算策略,向所述多個分賬賬戶分別記賬對應(yīng)的分賬金額。

      其中,可選地,所述獲取模塊12具體用于:確定與所述訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算接口;調(diào)用所述結(jié)算接口,獲取與所述訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略。

      圖8所示裝置可以執(zhí)行圖1所示實施例的方法,本實施例未詳細描述的部分,可參考對圖1所示實施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖1所示實施例中的描述,在此不再贅述。

      圖9為本發(fā)明實施例提供的分賬結(jié)算裝置實施例二的結(jié)構(gòu)示意圖,如圖9所示,該分賬結(jié)算裝置還包括:第二確定模塊21。

      第二確定模塊21,用于確定所述多個分賬賬戶中的第一類分賬賬戶和第二類分賬賬戶。

      所述處理模塊13,用于若第二確定模塊21確定所述多個分賬賬戶中包括至少一個第一類分賬賬戶和至少一個第二類分賬賬戶,則根據(jù)所述結(jié)算策略,獲取每個第一類分賬賬戶對應(yīng)的分賬金額和每個第二類分賬賬戶對應(yīng)的分賬金額;分別向所述至少一個第一類分賬賬戶和所述至少一個第二類分賬賬戶記賬對應(yīng)的分賬金額。

      圖9所示裝置可以執(zhí)行圖2所示實施例的方法,本實施例未詳細描述的部分,可參考對圖2所示實施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖2所示實施例中的描述,在此不再贅述。

      圖10為本發(fā)明實施例提供的分賬結(jié)算裝置實施例三的結(jié)構(gòu)示意圖,如圖10所示,在圖9所示實施例基礎(chǔ)上,所述處理模塊13包括:第一生成子模塊131、第一發(fā)送子模塊132、第一處理子模塊133。

      第一生成子模塊131,用于生成所述至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),所述至少一個第二類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),每個結(jié)算任務(wù)中包括對應(yīng)的分賬賬戶和分賬金額。

      第一發(fā)送子模塊132,用于將所述至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù)發(fā)送至第一任務(wù)隊列中,將所述至少一個第二類分賬賬戶分別對應(yīng)的結(jié)算任務(wù)發(fā)送至第二任務(wù)隊列中。

      第一處理子模塊133,用于分別遍歷所述第一任務(wù)隊列和所述第二任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的分賬賬戶記賬對應(yīng)的分賬金額。

      圖10所示裝置可以執(zhí)行圖3所示實施例的方法,本實施例未詳細描述的部分,可參考對圖3所示實施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖3所示實施例中的描述,在此不再贅述。

      圖11為本發(fā)明實施例提供的分賬結(jié)算裝置實施例四的結(jié)構(gòu)示意圖,如圖11所示,在圖9所示實施例基礎(chǔ)上,所述處理模塊13包括:第二生成子模塊134、第二發(fā)送子模塊135、第二處理子模塊136、第一更新子模塊137、第一獲取子模塊138、第二更新子模塊139。

      第二生成子模塊134,用于生成所述至少一個第一類分賬賬戶分別對應(yīng)的結(jié)算任務(wù),所述結(jié)算任務(wù)中包括對應(yīng)的第一類分賬賬戶和分賬金額。

      第二發(fā)送子模塊135,用于將生成的結(jié)算任務(wù)發(fā)送至第一類分賬賬戶對應(yīng)的任務(wù)隊列中。

      第二處理子模塊136,用于遍歷所述任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的第一類分賬賬戶記賬對應(yīng)的分賬金額。

      第一更新子模塊137,用于對于所述至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前所述第二類分賬賬戶Hi對應(yīng)有一個分賬金額,則根據(jù)所述一個分賬金額更新所述第二類分賬賬戶Hi的余額,并更新所述第二類分賬賬戶Hi對應(yīng)的標(biāo)號,所述標(biāo)號用于標(biāo)記一次記賬操作。

      第一獲取子模塊138,用于對于所述至少一個第二類分賬賬戶中的任一第二類分賬賬戶Hi,若當(dāng)前所述第二類分賬賬戶Hi對應(yīng)有多個分賬金額,則獲取所述第二類分賬賬戶Hi對應(yīng)的第一標(biāo)號和余額。

      第二更新子模塊139,用于分別針對所述多個分賬金額進行如下的處理:

      根據(jù)對應(yīng)的分賬金額和所述第一標(biāo)號更新所述第二類分賬賬戶Hi的余額;若所述余額更新成功,則更新所述第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號為第二標(biāo)號;其中,余額更新成功的條件為所述第一標(biāo)號與所述第二類分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號一致。

      圖11所示裝置可以執(zhí)行圖4所示實施例的方法,本實施例未詳細描述的部分,可參考對圖4所示實施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖4所示實施例中的描述,在此不再贅述。

      圖12為本發(fā)明實施例提供的分賬結(jié)算裝置實施例五的結(jié)構(gòu)示意圖,如圖12所示,在圖9所示實施例基礎(chǔ)上,所述處理模塊13包括:第一計算子模塊1310、第三生成子模塊1311、第三發(fā)送子模塊1312、第三處理子模塊1313。

      第一計算子模塊1310,用于根據(jù)所述結(jié)算策略,計算所述多個分賬賬戶分別對應(yīng)的分賬金額。

      第三生成子模塊1311,用于生成與所述多個分賬賬戶分別對應(yīng)的結(jié)算任務(wù),每個結(jié)算任務(wù)中包括對應(yīng)的分賬賬戶和分賬金額。

      第三發(fā)送子模塊1312,用于將多個結(jié)算任務(wù)發(fā)送至任務(wù)隊列中。

      第三處理子模塊1313,用于遍歷所述任務(wù)隊列,根據(jù)遍歷獲得的結(jié)算任務(wù),向?qū)?yīng)的分賬賬戶記賬對應(yīng)的分賬金額。

      圖12所示裝置可以執(zhí)行圖5所示實施例的方法,本實施例未詳細描述的部分,可參考對圖5所示實施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖5所示實施例中的描述,在此不再贅述。

      圖13為本發(fā)明實施例提供的分賬結(jié)算裝置實施例六的結(jié)構(gòu)示意圖,如圖13所示,在圖9所示實施例基礎(chǔ)上,所述處理模塊13包括:第二計算子模塊1314、第三更新子模塊1315、第二獲取子模塊1316、第四更新子模塊1317。

      第二計算子模塊1314,用于根據(jù)所述結(jié)算策略,計算所述多個分賬賬戶對應(yīng)的分賬金額。

      第三更新子模塊1315,用于對于所述多個分賬賬戶中的任一分賬賬戶Hi,若當(dāng)前所述分賬賬戶Hi對應(yīng)有一個分賬金額,則根據(jù)所述一個分賬金額更新所述分賬賬戶Hi的余額,并更新所述分賬賬戶Hi對應(yīng)的標(biāo)號,所述標(biāo)號用于標(biāo)記一次記賬操作。

      第二獲取子模塊1316,用于若當(dāng)前所述分賬賬戶Hi對應(yīng)有多個分賬金額,則獲取所述分賬賬戶Hi對應(yīng)的第一標(biāo)號和余額;

      第四更新子模塊1317,用于分別針對所述多個分賬金額進行如下的處理:根據(jù)對應(yīng)的分賬金額和所述第一標(biāo)號更新所述分賬賬戶Hi的余額;若所述余額更新成功,則更新所述分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號為第二標(biāo)號;其中,余額更新成功的條件為所述第一標(biāo)號與所述分賬賬戶Hi當(dāng)前對應(yīng)的標(biāo)號一致。

      圖13所示裝置可以執(zhí)行圖6所示實施例的方法,本實施例未詳細描述的部分,可參考對圖6所示實施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖6所示實施例中的描述,在此不再贅述。

      圖14為本發(fā)明實施例提供的分賬結(jié)算裝置實施例七的結(jié)構(gòu)示意圖,如圖14所示,在圖8至圖13任一所示實施例基礎(chǔ)上,可選地,該裝置還包括:生成模塊31、存儲模塊32。

      生成模塊31,用于生成與所述多個分賬賬戶分別對應(yīng)的記賬明細。

      存儲模塊32,用于將所述記賬明細分別存儲到第一數(shù)據(jù)庫和第二數(shù)據(jù)庫,其中,第一數(shù)據(jù)庫具有預(yù)設(shè)時間長度的存儲時效。

      可選地,所述裝置還包括:接收模塊33、查詢模塊34。

      接收模塊33,用于接收查詢請求,所述查詢請求中包括查詢時間段。

      查詢模塊34,用于根據(jù)所述查詢時間段從所述第一數(shù)據(jù)庫和所述第二數(shù)據(jù)庫中確定目標(biāo)數(shù)據(jù)庫。

      圖14所示裝置可以執(zhí)行圖7所示實施例的方法,本實施例未詳細描述的部分,可參考對圖7所示實施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖7所示實施例中的描述,在此不再贅述。

      以上描述了分賬結(jié)算裝置的內(nèi)部功能和結(jié)構(gòu),實際中,該分賬結(jié)算裝置可實現(xiàn)為服務(wù)器,包括:輸入設(shè)備、處理器;

      所述輸入設(shè)備,用于接收訂單;

      所述處理器,耦合到所述輸入設(shè)備,用于根據(jù)訂單的當(dāng)前狀態(tài)和訂單詳情信息確定多個分賬賬戶;獲取與所述訂單的當(dāng)前狀態(tài)對應(yīng)的結(jié)算策略;根據(jù)所述結(jié)算策略,向所述多個分賬賬戶分別記賬對應(yīng)的分賬金額。

      可選地,所述處理器還用于執(zhí)行上述圖1至圖7所示方法步驟中的全部或部分步驟。

      以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。

      通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以產(chǎn)品的形式體現(xiàn)出來,該計算機產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機裝置(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)裝置等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。

      最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1