本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種票據(jù)的多人議價方法、系統(tǒng)和裝置。
背景技術(shù):
現(xiàn)有技術(shù)通常采用中國票據(jù)網(wǎng)、普蘭票據(jù)網(wǎng)等進(jìn)行票據(jù)交易?,F(xiàn)有的交易模式如下:用戶可以在中國票據(jù)網(wǎng)上發(fā)送公開、定向的銀行承兌匯票買斷式、回購式轉(zhuǎn)貼現(xiàn)報價,通過報價應(yīng)答方式與業(yè)務(wù)人員聯(lián)系,線下進(jìn)行進(jìn)一步議價交易。用戶還可以通過在普蘭票據(jù)網(wǎng)上填寫承兌行類型、票面金額、匯票到期日等信息進(jìn)行線下溝通議價,普蘭公司可以從企業(yè)手中收到銀行承兌匯票,去協(xié)議行辦理貼現(xiàn)和轉(zhuǎn)貼現(xiàn)業(yè)務(wù)。然而在實(shí)際的交易過程中,無論是中國票據(jù)網(wǎng)還是普蘭公司都只能在線下點(diǎn)對點(diǎn)的進(jìn)行票據(jù)議價?,F(xiàn)有的銀行承兌匯票的交易過程有以下缺點(diǎn):首先,銀行承兌匯票進(jìn)行交易要考慮的要素很多,在網(wǎng)站上我們找自己想要的票據(jù)要花費(fèi)很長的時間;其次,當(dāng)我們找到想要進(jìn)行交易的票據(jù)后要在線下通過一個一個打電話等方式跟對手方進(jìn)行議價,費(fèi)時費(fèi)力還有可能失敗從而需要重新尋找合適的票據(jù);最后,因?yàn)橛脩粽莆盏男畔⒂邢蓿杂脩粼诮灰字械睦娌荒艿玫筋A(yù)期的保證。因此需要一種可以對票據(jù)進(jìn)行多人議價的方法,提高票據(jù)的交易效率和成功率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種票據(jù)的多人議價方法、系統(tǒng)和裝置,解決了以上所述的技術(shù)問題。
依據(jù)本發(fā)明的一個方面,提供了一種票據(jù)的多人議價方法,包括以下步驟,
步驟1,交易發(fā)起者對應(yīng)的第一客戶端生成交易事件,并獲取與所述交易事件對應(yīng)的交易對象列表;
步驟2,所述第一客戶端根據(jù)交易事件和交易對象列表生成第一報價請求事件,并將所述第一報價請求事件發(fā)送到服務(wù)器;所述第一報價請求事件包括交易發(fā)起者對應(yīng)的第一報價價格和交易對象列表中至少一個交易對象;
步驟3,服務(wù)器將所述第一報價請求事件發(fā)送到交易對象列表中每個交易對象對應(yīng)的第二客戶端,并獲取所述第二客戶端返回的第二報價請求事件;所述第二報價請求事件包括交易對象對應(yīng)的第二報價價格;
步驟4,服務(wù)器將所述第二報價請求事件返回給第一客戶端,并接收第一客戶端發(fā)送的包括修改后的第一報價價格的新的第一報價請求事件,并將所述新的第一報價請求事件發(fā)送給對應(yīng)的第二客戶端;
步驟5,重復(fù)步驟3~4,直到達(dá)成預(yù)設(shè)的議價結(jié)束條件。
本發(fā)明的有益效果是:本發(fā)明票據(jù)的多人議價方法通過將票據(jù)交易事件分別發(fā)送給多個交易對象,可以實(shí)現(xiàn)和多個交易對象進(jìn)行多人議價,而采用多個客戶端就可以分別對不同的票據(jù)品種分別進(jìn)行多人議價,從而可以及時獲取雙方報價,節(jié)省了票據(jù)交易時間,提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
進(jìn)一步,所述第一報價請求事件包括交易ID、交易類型、交易限定時間、交易對象和第一報價價格;所述第二報價請求事件包括交易ID、交易類型、交易限定時間、交易對象、第一報價價格和第二報價價格。
采用上述進(jìn)一步方案的有益效果是:本進(jìn)一步技術(shù)方案中,交易發(fā)起者通過獲取交易對象返回的第二報價請求事件,即可以獲取本次票據(jù)交易的全部信息,比如雙方的本次報價以及是否達(dá)到交易限定時間等等,從而提高了議價的效率。
進(jìn)一步,所述議價結(jié)束條件包括:達(dá)到預(yù)設(shè)的交易限定時間、交易發(fā)起者對應(yīng)的第一報價價格和交易對象對應(yīng)的第二報價價格達(dá)成一致、交易發(fā)起者主動結(jié)束議價過程和交易對象主動結(jié)束議價過程。
采用上述進(jìn)一步方案的有益效果是:本進(jìn)一步技術(shù)方案中,設(shè)置了多個議價結(jié)束條件,當(dāng)達(dá)到其中一個預(yù)設(shè)的議價結(jié)束條件后,即結(jié)束和對應(yīng)交易對象的本次議價過程,不僅議價方式更加靈活,而且可以節(jié)約資源,提高整體的議價效率。
進(jìn)一步,步驟1中,第一客戶端獲取交易對象列表具體包括以下步驟:
S101,生成用于獲取交易對象列表的ActionEvent事件;
S102,通過ActionListener接口監(jiān)聽所述ActionEvent事件,并把監(jiān)聽到的ActionEvent事件傳播給對應(yīng)的監(jiān)聽器;
S103,所述監(jiān)聽器接收ActionEvent事件,然后執(zhí)行ActionListener接口預(yù)先定義的與所述ActionEvent事件對應(yīng)的處理函數(shù),并啟動一個獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用Thread worker接口,所述Thread worker接口采用表單的數(shù)據(jù)處理方法與存儲有交易對象信息的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對象列表;
S104,采用表單的界面處理方法將所述交易對象列表以彈框的方式返回給第一客戶端的界面。
進(jìn)一步,所述步驟2具體為:
S201,所述第一客戶端通過調(diào)用函數(shù)submiPricetInquiry將所述第一報價價格和交易對象列表中的至少一個交易對象封裝在所述交易事件中生成第一報價請求事件;
S202,將所述第一報價請求事件轉(zhuǎn)換為對應(yīng)的MAP格式的數(shù)據(jù),并通過socket通信函數(shù)將所述MAP格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。
進(jìn)一步,所述步驟3具體為:
步驟A1,第一連接服務(wù)器接收所述第一報價請求事件后,對所述第一報價請求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對象,則通過socket通信函數(shù)將所述第一報價請求事件發(fā)送給每個交易對象對應(yīng)的第二客戶端;
步驟A2,所述交易對象對應(yīng)的第二客戶端監(jiān)聽到所述第一報價請求事件后,調(diào)用函數(shù)ReceivePriceInquiry以彈窗的方式顯示所述第一報價請求事件,并將交易對象的第二報價價格與所述第一報價請求事件封裝為第二報價請求事件后,將所述第二報價請求事件返回給所述第一連接服務(wù)器。
進(jìn)一步,所述步驟3具體為:
步驟B1,第一連接服務(wù)器接收所述第一報價請求事件后,對所述第一報價請求事件的交易發(fā)起者進(jìn)行匹配,若沒有匹配到交易對象,則將所述第一報價請求事件存儲在消息服務(wù)器中;
步驟B2,應(yīng)用服務(wù)器通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報價請求事件,并通過ServerEventListener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報價請求事件,然后根據(jù)所述第一報價請求事件生成對應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的其他連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報價請求事件的全部內(nèi)容;
步驟B3,相關(guān)聯(lián)的第二連接服務(wù)器監(jiān)聽到所述服務(wù)器事件后,對所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個交易對象對應(yīng)的第二客戶端;
步驟B4,所述交易對象對應(yīng)的第二客戶端監(jiān)聽到所述服務(wù)器事件后,調(diào)用函數(shù)ReceivePriceInquiry以彈窗的方式顯示所述服務(wù)器事件,并將交易對象的第二報價價格與所述服務(wù)器事件封裝為第二報價請求事件后,將所述第二報價請求事件返回給對應(yīng)的第二連接服務(wù)器。
進(jìn)一步,根據(jù)所述第一報價請求事件生成對應(yīng)的服務(wù)器事件具體為:將所述第一報價請求事件插入到對應(yīng)的日志表中,根據(jù)所述第一報價請求事件的當(dāng)前狀態(tài)找到狀態(tài)機(jī)中所述當(dāng)前狀態(tài)對應(yīng)的下一個狀態(tài)信息,并對述第一報價請求事件對應(yīng)的狀態(tài)機(jī)流程信息進(jìn)行更新后生成對應(yīng)的服務(wù)器事件。
采用上述進(jìn)一步方案的有益效果是:本進(jìn)一步技術(shù)方案中,針對具體的票據(jù)交易事件,在客戶端上進(jìn)行模塊化處理,同時本技術(shù)方案采用專門負(fù)責(zé)事件分發(fā)的線程進(jìn)行處理,提高了票據(jù)交易的速度和效率。
依據(jù)本發(fā)明的另一個方面,提供了一種票據(jù)的多人議價系統(tǒng),包括交易發(fā)起者對應(yīng)的第一客戶端、交易對象對應(yīng)的第二客戶端和用于連接所述第一客戶端和第二客戶端的服務(wù)器,
所述第一客戶端用于生成交易事件,獲取與所述交易事件對應(yīng)的交易對象列表,并根據(jù)交易事件和交易對象列表生成第一報價請求事件,然后將所述第一報價請求事件發(fā)送到服務(wù)器;以及用于根據(jù)服務(wù)器發(fā)回的第二報價請求事件對所述第一報價價格進(jìn)行修改后生成新的第一報價請求事件發(fā)送到服務(wù)器;所述第一報價請求事件包括交易發(fā)起者對應(yīng)的第一報價價格和交易對象列表中至少一個交易對象;
所述服務(wù)器用于將所述第一報價請求事件發(fā)送到所述第二客戶端,并獲取第二客戶端返回的第二報價請求事件,然后將所述第二報價請求事件返回給第一客戶端;以及用于接收第一客戶端發(fā)送的包括修改后的第一報價價格的新的第一報價請求事件,并將所述新的第一報價請求事件發(fā)送給對應(yīng)的第二客戶端;
所述第二客戶端用于接收服務(wù)器發(fā)送的第一報價請求事件,并根據(jù)每個交易對象的第二報價價格生成第二報價請求事件后,將所述第二報價請求事件發(fā)送給服務(wù)器。
本發(fā)明的有益效果是:本發(fā)明票據(jù)的多人議價系統(tǒng)采用事件驅(qū)動的方式,通過將票據(jù)交易事件分別發(fā)送給多個交易對象,可以實(shí)現(xiàn)和多個交易對象進(jìn)行多人議價,而采用多個客戶端就可以分別對不同的票據(jù)品種分別進(jìn)行多人議價,從而可以及時獲取雙方報價,節(jié)省了票據(jù)交易時間,提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
進(jìn)一步,所述第一客戶端包括:
事件觸發(fā)模塊,用于生成獲取交易對象列表的ActionEvent事件;
事件監(jiān)聽模塊,用于通過ActionListener接口監(jiān)聽所述ActionEvent事件,并把監(jiān)聽到的ActionEvent事件傳播給對應(yīng)的監(jiān)聽器;
事件處理模塊,用于通過監(jiān)聽器接收ActionEvent事件,然后執(zhí)行ActionListener接口預(yù)先定義的與所述ActionEvent事件對應(yīng)的處理函數(shù),并啟動一個獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用Thread worker接口,所述Thread worker接口采用表單的數(shù)據(jù)處理方法與對應(yīng)的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對象列表;
顯示模塊,用于采用表單的界面處理方法將所述交易對象列表以彈框的方式返回給第一客戶端的界面;
事件生成模塊,用于調(diào)用函數(shù)submiPricetInquiry將所述第一報價價格和交易對象列表中至少一個交易對象封裝在所述交易事件中生成第一報價請求事件;
事件發(fā)送模塊,用于將所述第一報價請求事件轉(zhuǎn)換為對應(yīng)的MAP格式的數(shù)據(jù),并通過socket通信函數(shù)將所述MAP格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。
進(jìn)一步,所述服務(wù)器包括:
第一連接服務(wù)器,用于接收所述第一報價請求事件,
對所述第一報價請求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對象,則通過socket通信函數(shù)將所述第一報價請求事件發(fā)送給交易對象對應(yīng)的第二客戶端,并接收交易對象通過第二客戶端發(fā)送的第二報價請求事件;以及用于當(dāng)沒有匹配到交易對象時,則將所述第一報價請求事件存儲在消息服務(wù)器中;
消息服務(wù)器,用于存儲所述第一報價請求事件和所述服務(wù)器事件;
應(yīng)用服務(wù)器,通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報價請求事件,并通過ServerEventListener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報價請求事件,然后根據(jù)所述第一報價請求事件生成對應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的第二連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報價請求事件的全部內(nèi)容;
第二連接服務(wù)器,用于監(jiān)聽并接受所述服務(wù)器事件后,對所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個交易對象對應(yīng)的第二客戶端,以及接收每個交易對象通過第二客戶端發(fā)送的第二報價請求事件。
進(jìn)一步,所述第二客戶端用于監(jiān)聽到所述第一報價請求事件或所述服務(wù)器事件后,調(diào)用函數(shù)ReceivePriceInquiry以彈窗的方式顯示所述第一報價請求事件或服務(wù)器事件,并將交易對象的第二報價價格與所述第一報價請求事件封裝為第二報價請求事件后返回給第一連接服務(wù)器或者將交易對象的第二報價價格與所述服務(wù)器事件封裝為第二報價請求事件后,將所述第二報價請求事件返回給第二連接服務(wù)器。
本發(fā)明還提供了一種裝置,包括所述的票據(jù)的多人議價系統(tǒng)。
進(jìn)一步,所述裝置為手機(jī)、臺式機(jī)、筆記本電腦和/或平板電腦。
采用上述進(jìn)一步方案的有益效果是:本發(fā)明的裝置可以應(yīng)用在銀行、企業(yè)等機(jī)構(gòu)中,提高了銀行、企業(yè)進(jìn)行票據(jù)交易的效率和成功率,有利于交易市場的有序進(jìn)行。
附圖說明
圖1為本發(fā)明實(shí)施例提供的票據(jù)的多人議價方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的票據(jù)的多人議價系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為本發(fā)明另一實(shí)施例提供的票據(jù)多人議價的系統(tǒng)的結(jié)構(gòu)示意圖;
圖4為本實(shí)施例提供的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,為實(shí)施例1一種票據(jù)的多人議價方法的流程示意圖,包括以下步驟:
步驟1,交易發(fā)起者對應(yīng)的第一客戶端生成交易事件,并獲取與所述交易事件對應(yīng)的交易對象列表;
步驟2,所述第一客戶端根據(jù)交易事件和交易對象列表生成第一報價請求事件,并將所述第一報價請求事件發(fā)送到服務(wù)器;所述第一報價請求事件包括交易發(fā)起者對應(yīng)的第一報價價格和交易對象列表中至少一個交易對象;
步驟3,服務(wù)器將所述第一報價請求事件發(fā)送到交易對象列表中每個交易對象對應(yīng)的第二客戶端,并獲取所述第二客戶端返回的第二報價請求事件;所述第二報價請求事件包括交易對象對應(yīng)的第二報價價格;
步驟4,服務(wù)器將所述第二報價請求事件返回給第一客戶端,并接收第一客戶端發(fā)送的包括修改后的第一報價價格的新的第一報價請求事件,并將所述新的第一報價請求事件發(fā)送給對應(yīng)的第二客戶端;
步驟5,重復(fù)步驟3~4,直到達(dá)成預(yù)設(shè)的議價結(jié)束條件。
本發(fā)明票據(jù)的多人議價方法通過將票據(jù)交易事件分別發(fā)送給多個交易對象,可以實(shí)現(xiàn)和多個交易對象進(jìn)行多人議價,而采用多個客戶端就可以分別對不同的票據(jù)品種分別進(jìn)行多人議價,從而可以及時獲取雙方報價,節(jié)省了票據(jù)交易時間,提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
優(yōu)選的實(shí)施例中,所述第一報價請求事件包括交易ID、交易類型、交易限定時間、交易對象和第一報價價格;所述第二報價請求事件包括交易ID、交易類型、交易限定時間、交易對象、第一報價價格和第二報價價格。交易發(fā)起者通過獲取交易對象返回的第二報價請求事件,即可以獲取本次票據(jù)交易的全部信息,比如雙方的本次報價以及是否達(dá)到交易限定時間等等,從而提高了議價的效率。
優(yōu)選實(shí)施例中,所述議價結(jié)束條件包括:達(dá)到預(yù)設(shè)的交易限定時間、交易發(fā)起者對應(yīng)的第一報價價格和交易對象對應(yīng)的第二報價價格達(dá)成一致、交易發(fā)起者主動結(jié)束議價過程和交易對象主動結(jié)束議價過程。該優(yōu)選實(shí)施例中,設(shè)置了多個議價結(jié)束條件,當(dāng)達(dá)到其中一個預(yù)設(shè)的議價結(jié)束條件后,即結(jié)束和對應(yīng)交易對象的本次議價過程,不僅議價方式更加靈活,而且可以節(jié)約資源,提高整體的議價效率。
另一個優(yōu)選實(shí)施例中,步驟1中,第一客戶端獲取交易對象列表具體包括以下步驟:
S101,生成用于獲取交易對象列表的ActionEvent事件;
S102,通過ActionListener接口監(jiān)聽所述ActionEvent事件,并把監(jiān)聽到的ActionEvent事件傳播給對應(yīng)的監(jiān)聽器;
S103,所述監(jiān)聽器接收ActionEvent事件,然后執(zhí)行ActionListener接口預(yù)先定義的與所述ActionEvent事件對應(yīng)的處理函數(shù),并啟動一個獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用Thread worker接口,所述Thread worker接口采用表單的數(shù)據(jù)處理方法與存儲有交易對象信息的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對象列表;
S104,采用表單的界面處理方法將所述交易對象列表以彈框的方式返回給第一客戶端的界面。該實(shí)施例中,所述步驟2具體為:
S201,所述第一客戶端通過調(diào)用函數(shù)submiPricetInquiry將所述第一報價價格和交易對象列表中的至少一個交易對象封裝在所述交易事件中生成第一報價請求事件;
S202,將所述第一報價請求事件轉(zhuǎn)換為對應(yīng)的MAP格式的數(shù)據(jù),并通過socket通信函數(shù)將所述MAP格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。
在一個優(yōu)選實(shí)施例中,所述步驟3具體為:第一連接服務(wù)器接收所述第一報價請求事件后,對所述第一報價請求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對象,包括以下步驟:通過socket通信函數(shù)將所述第一報價請求事件發(fā)送給每個交易對象對應(yīng)的第二客戶端;所述交易對象對應(yīng)的第二客戶端監(jiān)聽到所述第一報價請求事件后,調(diào)用函數(shù)ReceivePriceInquiry以彈窗的方式顯示所述第一報價請求事件,并將交易對象的第二報價價格與所述第一報價請求事件封裝為第二報價請求事件后,將所述第二報價請求事件返回給所述第一連接服務(wù)器。
若沒有匹配到交易對象,則包括以下步驟:
步驟B1,將所述第一報價請求事件存儲在消息服務(wù)器中;
步驟B2,應(yīng)用服務(wù)器通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報價請求事件,并通過ServerEventListener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報價請求事件,然后根據(jù)所述第一報價請求事件生成對應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的其他連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報價請求事件的全部內(nèi)容;
步驟B3,相關(guān)聯(lián)的第二連接服務(wù)器監(jiān)聽到所述服務(wù)器事件后,對所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個交易對象對應(yīng)的第二客戶端;
步驟B4,所述交易對象對應(yīng)的第二客戶端監(jiān)聽到所述服務(wù)器事件后,調(diào)用函數(shù)ReceivePriceInquiry以彈窗的方式顯示所述服務(wù)器事件,并將交易對象的第二報價價格與所述服務(wù)器事件封裝為第二報價請求事件后,將所述第二報價請求事件返回給對應(yīng)的第二連接服務(wù)器。
優(yōu)選的實(shí)施例中,將所述第一報價請求事件插入到對應(yīng)的日志表中,根據(jù)所述第一報價請求事件的當(dāng)前狀態(tài)找到狀態(tài)機(jī)中所述當(dāng)前狀態(tài)對應(yīng)的下一個狀態(tài)信息,并對述第一報價請求事件對應(yīng)的狀態(tài)機(jī)流程信息進(jìn)行更新后生成對應(yīng)的服務(wù)器事件。
以下通過一個票據(jù)交易實(shí)例對上述步驟進(jìn)行說明。
步驟1,用戶趙六通過客戶端發(fā)送交易事件到服務(wù)器,具體為:
(1)用戶趙六通過交易發(fā)起面板發(fā)起交易,交易內(nèi)容包括交易ID、交易類型、票據(jù)信息、交易限定時間和交易價格,具體的,交易ID為001,交易類型為即時回復(fù),票據(jù)信息可以為待交易的一張或者多張票據(jù)的信息,交易限定時間為30分鐘,交易價格為10萬。在其他優(yōu)選實(shí)施例中,所述交易內(nèi)容還可以包括備注信息,方便交易對象對交易票據(jù)的其他信息或者交易中的溝通信息進(jìn)行了解。
(2)AWT根據(jù)自身機(jī)制,生成ActionEvent事件。
(3)ActionEvent監(jiān)聽器通過DealPanel,監(jiān)聽到該ActionEvent事件。
(4)構(gòu)造請求數(shù)據(jù)BuildRequest()后,啟動一個新的ThreadWorker線程。所述新的ThreadWorker線程調(diào)用表單的數(shù)據(jù)處理方法(doCommonWork)向存儲有交易對象信息的連接服務(wù)器請求數(shù)據(jù),連接服務(wù)器接收請求事件“getGuestListEvent”,并在內(nèi)存中讀取數(shù)據(jù),生成發(fā)送對象列表,然后將發(fā)送對象列表返回給ThreadWorker線程;本實(shí)施例中,發(fā)送對象列表中包括:張三、李四、王五三個人。
(5)ThreadWorker線程調(diào)用表單的界面處理方法(doAWTWork)將取得的發(fā)送對象列表返回給畫面主線程,此時ThreadWorker線程結(jié)束。
(6)用戶趙六的客戶端取得ThreadWorker線程返回的發(fā)送對象列表,并彈出發(fā)起確認(rèn)畫面。
(7)用戶趙六的客戶端通過發(fā)起確認(rèn)面板發(fā)起交易,并確認(rèn)將步驟(1)中的交易內(nèi)容發(fā)送到發(fā)送對象列表中的張三、李四、王五三個人。
(8)客戶端的交易請求管理監(jiān)聽類(inquiryManager)調(diào)用函數(shù)submitInquiry(),生成交易請求事件(DealRequestEvent),將畫面的請求數(shù)據(jù)封裝在該交易請求事件中。具體為:
交易請求事件(Deal_Request)
事件名稱:DealRequestAction
數(shù)據(jù):交易請求事件(DealRequestEvent),其中包括交易ID,交易類型,票據(jù)信息、交易限定時間,交易價格,發(fā)送對象列表等。
(9)將所述交易請求事件轉(zhuǎn)換為對應(yīng)的MAP格式的數(shù)據(jù),并通過socket通信函數(shù)(sendDataToServer)發(fā)送給服務(wù)器。
步驟2,服務(wù)器側(cè)對事件對象進(jìn)行處理,具體為:
(10)第一連接服務(wù)器接受到客戶端事件,事件名稱為DealRequestAction;數(shù)據(jù)為交易請求事件(DealRequestEvent)。
(11)由于本連接服務(wù)器不處理該事件(DealRequestAction),故將該事件消息發(fā)送到消息服務(wù)器中進(jìn)行存儲,并等待其他的應(yīng)用服務(wù)器對該事件進(jìn)行讀取。
(12)此時,一個應(yīng)用服務(wù)器AS的常駐消息服務(wù)器監(jiān)聽線程監(jiān)聽到該事件后,采用監(jiān)聽器InquiryManageListener處理該事件,具體為:
處理函數(shù):performInquiryAction
處理事件名稱:DealRequestAction
數(shù)據(jù):交易請求事件(DealRequestEvent)。
(13)AS服務(wù)器中,將這條交易信息插入到數(shù)據(jù)庫。在AS服務(wù)器中,根據(jù)該筆交易的交易ID:001,狀態(tài)機(jī)ID:21,當(dāng)前狀態(tài)ID:14,當(dāng)前操作:發(fā)起交易,找到該狀態(tài)機(jī)的下一個狀態(tài)信息。
(14)更新該筆交易的狀態(tài)機(jī)流程信息后,生成新的服務(wù)器事件(DealRequestActionReply)。
(15)由于本AS服務(wù)器不處理該事件(DealRequestActionReply),故將該事件消息發(fā)送到消息服務(wù)器進(jìn)行存儲,并等待其他的連接服務(wù)器或者應(yīng)用服務(wù)器進(jìn)行讀取。
(16)此時,第二連接服務(wù)器的常駐消息服務(wù)器監(jiān)聽線程監(jiān)聽到該事件(事件名稱:DealRequestActionReply),并匹配該事件的分發(fā)對象列表,通過socket通信的方式分別向列表內(nèi)的對象(張三、李四、王五)發(fā)送信息。
(17)交易請求管理監(jiān)聽類(inquiryManager)調(diào)用函數(shù)ReceiveInquiry(),進(jìn)行彈窗處理,此時張三、李四、王五的客戶端上分別出現(xiàn)彈窗,以張三為例,具體為:
交易請求接收面板
交易ID:001
交易類型:即時回復(fù)
票據(jù)信息:顯示一個或者多個票據(jù)信息
交易限定時間:30分鐘
交易價格:10萬
狀態(tài):議價回復(fù)中
發(fā)送方:趙六
接受方:張三。
(18)張三通過對應(yīng)的第二客戶端接收到該事件后,對所述票據(jù)信息進(jìn)行選擇,并對選擇的至少一個票據(jù)信息進(jìn)行交易報價,然后通過第二客戶端形成第二報價請求事件,并把第二報價請求事件發(fā)送給第二連接服務(wù)器,第二連接服務(wù)器把第二報價請求事件返回給交易發(fā)起方趙六;在其他優(yōu)選實(shí)施例中,所述第二報價請求事件還可以包括張三輸入的備注信息,比如溝通信息等等,方便交易發(fā)起者獲取更全面的票據(jù)交易信息。
(19)重復(fù)上述議價過程,直到達(dá)到一個議價結(jié)束條件,比如趙六和張三、李四、王五中一個交易對象就交易價格達(dá)成一致;或者達(dá)到預(yù)設(shè)的交易限定時間交易對象沒有提交報價價格;或者交易發(fā)起者或者所有交易對象主動結(jié)束議價過程。
如圖2所示,為實(shí)施例2一種票據(jù)的多人議價系統(tǒng),包括交易發(fā)起者對應(yīng)的第一客戶端、交易對象對應(yīng)的第二客戶端和用于連接所述第一客戶端和第二客戶端的服務(wù)器,
所述第一客戶端用于生成交易事件,獲取與所述交易事件對應(yīng)的交易對象列表,并根據(jù)交易事件和交易對象列表生成第一報價請求事件,然后將所述第一報價請求事件發(fā)送到服務(wù)器;以及用于根據(jù)服務(wù)器發(fā)回的第二報價請求事件對所述第一報價價格進(jìn)行修改后生成新的第一報價請求事件發(fā)送到服務(wù)器;所述第一報價請求事件包括交易發(fā)起者對應(yīng)的第一報價價格和交易對象列表中至少一個交易對象;
所述服務(wù)器用于將所述第一報價請求事件發(fā)送到所述第二客戶端,并獲取第二客戶端返回的第二報價請求事件,然后將所述第二報價請求事件返回給第一客戶端;以及用于接收第一客戶端發(fā)送的包括修改后的第一報價價格的新的第一報價請求事件,并將所述新的第一報價請求事件發(fā)送給對應(yīng)的第二客戶端;
所述第二客戶端用于接收服務(wù)器發(fā)送的第一報價請求事件,并根據(jù)每個交易對象的第二報價價格生成第二報價請求事件后,將所述第二報價請求事件發(fā)送給服務(wù)器。
本實(shí)施例的票據(jù)多人議價系統(tǒng)可以包括多個第一客戶端,從而分別對不同品種的票據(jù)進(jìn)行議價,議價過程互不干擾,從而提高了票據(jù)的交易效率。
圖3為本發(fā)明優(yōu)選實(shí)施例提供的一種票據(jù)的多人議價系統(tǒng)的結(jié)構(gòu)示意圖,在該實(shí)施例中,所述第一客戶端包括:
事件觸發(fā)模塊,用于生成獲取交易對象列表的ActionEvent事件;
事件監(jiān)聽模塊,用于通過ActionListener接口監(jiān)聽所述ActionEvent事件,并把監(jiān)聽到的ActionEvent事件傳播給對應(yīng)的監(jiān)聽器;
事件處理模塊,用于通過監(jiān)聽器接收ActionEvent事件,然后執(zhí)行ActionListener接口預(yù)先定義的與所述ActionEvent事件對應(yīng)的處理函數(shù),并啟動一個獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用Thread worker接口,所述Thread worker接口采用表單的數(shù)據(jù)處理方法與對應(yīng)的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對象列表;
顯示模塊,用于采用表單的界面處理方法將所述交易對象列表以彈框的方式返回給第一客戶端的界面;
事件生成模塊,用于調(diào)用函數(shù)submiPricetInquiry將所述第一報價價格和交易對象列表中至少一個交易對象封裝在所述交易事件中生成第一報價請求事件;
事件發(fā)送模塊,用于將所述第一報價請求事件轉(zhuǎn)換為對應(yīng)的MAP格式的數(shù)據(jù),并通過socket通信函數(shù)將所述MAP格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。優(yōu)選的,在實(shí)施例中所述服務(wù)器包括:
第一連接服務(wù)器,用于接收所述第一報價請求事件,對所述第一報價請求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對象,則通過socket通信函數(shù)將所述第一報價請求事件發(fā)送給交易對象對應(yīng)的第二客戶端,并接收交易對象通過第二客戶端發(fā)送的第二報價請求事件;以及用于當(dāng)沒有匹配到交易對象時,則將所述第一報價請求事件存儲在消息服務(wù)器中;
消息服務(wù)器,用于存儲所述第一報價請求事件和所述服務(wù)器事件;
應(yīng)用服務(wù)器,通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報價請求事件,并通過ServerEventListener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報價請求事件,然后根據(jù)所述第一報價請求事件生成對應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的第二連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報價請求事件的全部內(nèi)容;
第二連接服務(wù)器,用于監(jiān)聽并接受所述服務(wù)器事件后,對所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個交易對象對應(yīng)的第二客戶端,以及接收每個交易對象通過第二客戶端發(fā)送的第二報價請求事件。在該實(shí)施例中,所述第二客戶端用于監(jiān)聽到所述第一報價請求事件或所述服務(wù)器事件后,調(diào)用函數(shù)ReceivePriceInquiry以彈窗的方式顯示所述第一報價請求事件或服務(wù)器事件,并將交易對象的第二報價價格與所述第一報價請求事件封裝為第二報價請求事件后返回給第一連接服務(wù)器或者將交易對象的第二報價價格與所述服務(wù)器事件封裝為第二報價請求事件后,將所述第二報價請求事件返回給第二連接服務(wù)器。
如圖4所示,為本實(shí)施例提供的裝置的結(jié)構(gòu)示意圖,包括所述票據(jù)的多人議價系統(tǒng)。一個實(shí)施例中,所述裝置為手機(jī),在其他實(shí)施例中,還可以為臺式機(jī)、筆記本電腦和/或平板電腦。本發(fā)明的裝置可以應(yīng)用在銀行、企業(yè)等機(jī)構(gòu)中,提高了銀行、企業(yè)進(jìn)行票據(jù)交易的效率和成功率,有利于交易市場的有序進(jìn)行。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。