本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種票據(jù)議價(jià)方法、第一客戶端、服務(wù)器、系統(tǒng)及終端。
背景技術(shù):
現(xiàn)有技術(shù)通常采用中國票據(jù)網(wǎng)、普蘭票據(jù)網(wǎng)等進(jìn)行票據(jù)交易。現(xiàn)有的交易模式如下:用戶可以在中國票據(jù)網(wǎng)上發(fā)送公開、定向的銀行承兌匯票買斷式、回購式轉(zhuǎn)貼現(xiàn)報(bào)價(jià),通過報(bào)價(jià)應(yīng)答方式與業(yè)務(wù)人員聯(lián)系,線下進(jìn)行進(jìn)一步議價(jià)交易。用戶還可以通過在普蘭票據(jù)網(wǎng)上填寫承兌行類型、票面金額、匯票到期日等信息進(jìn)行線下溝通議價(jià),普蘭公司可以從企業(yè)手中收到銀行承兌匯票,去協(xié)議行辦理貼現(xiàn)和轉(zhuǎn)貼現(xiàn)業(yè)務(wù)。然而在實(shí)際的交易過程中,無論是中國票據(jù)網(wǎng)還是普蘭公司都只能在線下點(diǎn)對(duì)點(diǎn)的進(jìn)行票據(jù)議價(jià)?,F(xiàn)有的銀行承兌匯票的交易過程有以下缺點(diǎn):首先,銀行承兌匯票進(jìn)行交易要考慮的要素很多,在網(wǎng)站上我們找自己想要的票據(jù)要花費(fèi)很長的時(shí)間;其次,當(dāng)我們找到想要進(jìn)行交易的票據(jù)后要在線下通過一個(gè)一個(gè)打電話等方式跟對(duì)手方進(jìn)行議價(jià),費(fèi)時(shí)費(fèi)力還有可能失敗從而需要重新尋找合適的票據(jù);最后,因?yàn)橛脩粽莆盏男畔⒂邢?,所以用戶在交易中的利益不能得到預(yù)期的保證。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種票據(jù)議價(jià)方法、第一客戶端、服務(wù)器、系統(tǒng)及終端,解決了以上所述的技術(shù)問題。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種票據(jù)議價(jià)方法,所述票據(jù)議價(jià)方法應(yīng)用于交易發(fā)起者對(duì)應(yīng)的第一客戶端,包括以下步驟:
s1,生成交易事件,并獲取與所述交易事件對(duì)應(yīng)的交易對(duì)象列表;
s2,根據(jù)交易事件和交易對(duì)象列表生成第一報(bào)價(jià)請(qǐng)求事件,并將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到服務(wù)器;所述第一報(bào)價(jià)請(qǐng)求事件包括交易品種、交易數(shù)量和交易對(duì)象列表中至少一個(gè)交易對(duì)象;
s3,在預(yù)設(shè)交易時(shí)間內(nèi)接收所述交易對(duì)象發(fā)送的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,所述第二報(bào)價(jià)請(qǐng)求事件包括交易對(duì)象對(duì)應(yīng)的報(bào)價(jià)價(jià)格;
s4,在預(yù)設(shè)交易時(shí)間結(jié)束后顯示所有交易對(duì)象的報(bào)價(jià)價(jià)格,并生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格。
本發(fā)明的有益效果是:本發(fā)明的票據(jù)議價(jià)方法通過將票據(jù)交易事件分別發(fā)送給多個(gè)交易對(duì)象,可以實(shí)現(xiàn)和多個(gè)交易對(duì)象進(jìn)行多人議價(jià),而采用多個(gè)客戶端就可以分別對(duì)不同的票據(jù)品種分別進(jìn)行多人議價(jià),從而可以及時(shí)獲取雙方報(bào)價(jià),節(jié)省了票據(jù)交易時(shí)間,提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
進(jìn)一步,s4具體包括以下步驟:
s401,獲取每個(gè)交易對(duì)象的信用等級(jí);
s402,在預(yù)設(shè)交易時(shí)間結(jié)束后顯示每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí);
s403,接收用戶指令,并根據(jù)用戶指令生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格;或者根據(jù)每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí)生成每個(gè)交易對(duì)象的交易評(píng)分,以交易評(píng)分最高的交易對(duì)象作為目標(biāo)交易對(duì)象,并以目標(biāo)交易對(duì)象的報(bào)價(jià)價(jià)格作為目標(biāo)交易價(jià)格。
采用上述進(jìn)一步方案的有益效果是:采用本進(jìn)一步技術(shù)方案可以結(jié)合交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí)生成更加合適的目標(biāo)交易對(duì)象,進(jìn)一步提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
進(jìn)一步,s1中獲取交易對(duì)象列表具體包括以下步驟:
s101,生成用于獲取交易對(duì)象列表的actionevent事件;
s102,通過actionlistener接口監(jiān)聽所述actionevent事件,并把監(jiān)聽到的actionevent事件傳播給對(duì)應(yīng)的監(jiān)聽器;
s103,所述監(jiān)聽器接收actionevent事件,然后執(zhí)行actionlistener接口預(yù)先定義的與所述actionevent事件對(duì)應(yīng)的處理函數(shù),并啟動(dòng)一個(gè)獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用threadworker接口,所述threadworker接口采用表單的數(shù)據(jù)處理方法與存儲(chǔ)有交易對(duì)象信息的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對(duì)象列表;
s104,采用表單的界面處理方法將所述交易對(duì)象列表以彈框的方式返回給第一客戶端的界面。
進(jìn)一步,s2具體為:
s201,所述第一客戶端通過調(diào)用函數(shù)submipricetinquiry將所述交易品種、交易數(shù)量和交易對(duì)象列表中的至少一個(gè)交易對(duì)象封裝在所述交易事件中生成第一報(bào)價(jià)請(qǐng)求事件;
s202,將所述第一報(bào)價(jià)請(qǐng)求事件轉(zhuǎn)換為對(duì)應(yīng)的map格式的數(shù)據(jù),并通過socket通信函數(shù)將所述map格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。
采用上述進(jìn)一步方案的有益效果是:本進(jìn)一步技術(shù)方案中,針對(duì)具體的票據(jù)交易事件,在第一客戶端上進(jìn)行模塊化處理,同時(shí)本技術(shù)方案采用專門負(fù)責(zé)事件分發(fā)的線程進(jìn)行處理,提高了票據(jù)交易的速度和效率。
為了解決本發(fā)明的技術(shù)問題,還提供了一種票據(jù)議價(jià)方法,所述票據(jù)議價(jià)方法應(yīng)用于服務(wù)器,包括以下步驟:
s10,接收所述第一報(bào)價(jià)請(qǐng)求事件;
s20,將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到交易對(duì)象列表中每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,并在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件;
s30,將所述第二報(bào)價(jià)請(qǐng)求事件發(fā)送給所述第一客戶端。
進(jìn)一步,所述服務(wù)器至少包括第一連接服務(wù)器、消息服務(wù)器、應(yīng)用服務(wù)器和第二連接服務(wù)器,所述s20具體包括以下步驟:
步驟a1,所述第一連接服務(wù)器接收所述第一報(bào)價(jià)請(qǐng)求事件后,對(duì)所述第一報(bào)價(jià)請(qǐng)求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對(duì)象,則執(zhí)行步驟a2,若沒有匹配到交易對(duì)象,則執(zhí)行步驟a3;
步驟a2,通過socket通信函數(shù)將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送給每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,并在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,然后執(zhí)行s30;
步驟a3,將所述第一報(bào)價(jià)請(qǐng)求事件存儲(chǔ)在消息服務(wù)器后,執(zhí)行步驟a4;
步驟a4,應(yīng)用服務(wù)器通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報(bào)價(jià)請(qǐng)求事件,并通過servereventlistener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報(bào)價(jià)請(qǐng)求事件,然后根據(jù)所述第一報(bào)價(jià)請(qǐng)求事件生成對(duì)應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的其他連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報(bào)價(jià)請(qǐng)求事件的全部內(nèi)容;
步驟a5,相關(guān)聯(lián)的第二連接服務(wù)器監(jiān)聽到所述服務(wù)器事件后,對(duì)所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,并在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,然后執(zhí)行s30。
為了解決本發(fā)明的技術(shù)問題,還提供了一種第一客戶端,包括:
獲取模塊,用于生成交易事件,并獲取與所述交易事件對(duì)應(yīng)的交易對(duì)象列表;
發(fā)送模塊,用于根據(jù)交易事件和交易對(duì)象列表生成第一報(bào)價(jià)請(qǐng)求事件,并將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到服務(wù)器;所述第一報(bào)價(jià)請(qǐng)求事件包括交易品種、交易數(shù)量和交易對(duì)象列表中至少一個(gè)交易對(duì)象;
接收模塊,用于在預(yù)設(shè)交易時(shí)間內(nèi)接收所述交易對(duì)象發(fā)送的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,所述第二報(bào)價(jià)請(qǐng)求事件包括交易對(duì)象對(duì)應(yīng)的報(bào)價(jià)價(jià)格;
生成模塊,用于在預(yù)設(shè)交易時(shí)間結(jié)束后顯示所有交易對(duì)象的報(bào)價(jià)價(jià)格,并生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格。
進(jìn)一步,所述獲取模塊具體包括:
事件觸發(fā)單元,用于生成獲取交易對(duì)象列表的actionevent事件;
事件監(jiān)聽單元,用于通過actionlistener接口監(jiān)聽所述actionevent事件,并把監(jiān)聽到的actionevent事件傳播給對(duì)應(yīng)的監(jiān)聽器;
事件處理單元,用于通過監(jiān)聽器接收actionevent事件,然后執(zhí)行actionlistener接口預(yù)先定義的與所述actionevent事件對(duì)應(yīng)的處理函數(shù),并啟動(dòng)一個(gè)獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用threadworker接口,所述threadworker接口采用表單的數(shù)據(jù)處理方法與對(duì)應(yīng)的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對(duì)象列表;
第一顯示單元,用于采用表單的界面處理方法將所述交易對(duì)象列表以彈框的方式返回給第一客戶端的界面。
進(jìn)一步,所述發(fā)送模塊具體包括:
事件生成單元,用于調(diào)用函數(shù)submipricetinquiry將所述交易品種、交易數(shù)量和交易對(duì)象列表中至少一個(gè)交易對(duì)象封裝在所述交易事件中生成第一報(bào)價(jià)請(qǐng)求事件;
事件發(fā)送單元,用于將所述第一報(bào)價(jià)請(qǐng)求事件轉(zhuǎn)換為對(duì)應(yīng)的map格式的數(shù)據(jù),并通過socket通信函數(shù)將所述map格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。
進(jìn)一步,所述生成模塊包括:
信用等級(jí)獲取單元,用于獲取每個(gè)交易對(duì)象的信用等級(jí);
第二顯示單元,用于在預(yù)設(shè)交易時(shí)間結(jié)束后顯示每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí);
目標(biāo)生成單元,用于接收用戶指令,并根據(jù)用戶指令生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格;或者根據(jù)每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí)生成每個(gè)交易對(duì)象的交易評(píng)分,以交易評(píng)分最高的交易對(duì)象作為目標(biāo)交易對(duì)象,并以目標(biāo)交易對(duì)象的報(bào)價(jià)價(jià)格作為目標(biāo)交易價(jià)格。
為了解決本發(fā)明的技術(shù)問題,還提供了一種服務(wù)器,所述服務(wù)器用于接收所述第一報(bào)價(jià)請(qǐng)求事件,將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到交易對(duì)象列表中每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端;以及用于在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,并將所述第二報(bào)價(jià)請(qǐng)求事件發(fā)送給所述第一客戶端。
進(jìn)一步,所述服務(wù)器包括:
第一連接服務(wù)器,用于接收所述第一報(bào)價(jià)請(qǐng)求事件,對(duì)所述第一報(bào)價(jià)請(qǐng)求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對(duì)象,則通過socket通信函數(shù)將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送給交易對(duì)象對(duì)應(yīng)的第二客戶端,并接收交易對(duì)象通過第二客戶端發(fā)送的第二報(bào)價(jià)請(qǐng)求事件;以及用于當(dāng)沒有匹配到交易對(duì)象時(shí),則將所述第一報(bào)價(jià)請(qǐng)求事件存儲(chǔ)在消息服務(wù)器中;
消息服務(wù)器,用于存儲(chǔ)所述第一報(bào)價(jià)請(qǐng)求事件和所述服務(wù)器事件;
應(yīng)用服務(wù)器,通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報(bào)價(jià)請(qǐng)求事件,并通過servereventlistener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報(bào)價(jià)請(qǐng)求事件,然后根據(jù)所述第一報(bào)價(jià)請(qǐng)求事件生成對(duì)應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的第二連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報(bào)價(jià)請(qǐng)求事件的全部內(nèi)容;
第二連接服務(wù)器,用于監(jiān)聽并接受所述服務(wù)器事件后,對(duì)所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,以及接收每個(gè)交易對(duì)象通過第二客戶端發(fā)送的第二報(bào)價(jià)請(qǐng)求事件。
為了解決本發(fā)明的技術(shù)問題,還提供了一種票據(jù)議價(jià)系統(tǒng),包括所述的第一客戶端和所述的服務(wù)器。
本發(fā)明的有益效果是:本發(fā)明票據(jù)議價(jià)系統(tǒng)采用事件驅(qū)動(dòng)的方式,通過將票據(jù)交易事件分別發(fā)送給多個(gè)交易對(duì)象,可以實(shí)現(xiàn)和多個(gè)交易對(duì)象進(jìn)行多人議價(jià),而采用多個(gè)客戶端就可以分別對(duì)不同的票據(jù)品種分別進(jìn)行多人議價(jià),從而可以及時(shí)獲取雙方報(bào)價(jià),節(jié)省了票據(jù)交易時(shí)間,提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
本發(fā)明還提供了一種終端,包括所述票據(jù)議價(jià)系統(tǒng)。
采用上述進(jìn)一步方案的有益效果是:本發(fā)明的終端可以應(yīng)用在銀行、企業(yè)等機(jī)構(gòu)中,提高了銀行、企業(yè)進(jìn)行票據(jù)交易的效率和成功率,有利于交易市場(chǎng)的有序進(jìn)行。
本發(fā)明附加的方面的優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明實(shí)踐了解到。
附圖說明
圖1為本發(fā)明實(shí)施例提供的一種票據(jù)議價(jià)方法的示意性流程圖;
圖2為本發(fā)明另一實(shí)施例提供的一種票據(jù)議價(jià)方法的示意性流程圖;
圖3為本發(fā)明另一實(shí)施例提供的一種第一客戶端的示意性結(jié)構(gòu)圖;
圖4為本發(fā)明另一實(shí)施例提供的一種服務(wù)器的示意性結(jié)構(gòu)圖;
圖5為本發(fā)明另一實(shí)施例提供的一種票據(jù)議價(jià)系統(tǒng)的示意性結(jié)構(gòu)圖;
圖6為本發(fā)明另一實(shí)施例提供的一種終端的示意性結(jié)構(gòu)圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
圖1是本發(fā)明實(shí)施例提供的票據(jù)議價(jià)方法的示意性流程圖,所述票據(jù)議價(jià)方法應(yīng)用于交易發(fā)起者對(duì)應(yīng)的第一客戶端,如圖1所示,包括以下步驟:
s1,生成交易事件,并獲取與所述交易事件對(duì)應(yīng)的交易對(duì)象列表;
s2,根據(jù)交易事件和交易對(duì)象列表生成第一報(bào)價(jià)請(qǐng)求事件,并將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到服務(wù)器;所述第一報(bào)價(jià)請(qǐng)求事件包括交易品種、交易數(shù)量和交易對(duì)象列表中至少一個(gè)交易對(duì)象;
s3,在預(yù)設(shè)交易時(shí)間內(nèi)接收所述交易對(duì)象發(fā)送的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,所述第二報(bào)價(jià)請(qǐng)求事件包括交易對(duì)象對(duì)應(yīng)的報(bào)價(jià)價(jià)格;
s4,在預(yù)設(shè)交易時(shí)間結(jié)束后顯示所有交易對(duì)象的報(bào)價(jià)價(jià)格,并生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格。
本實(shí)施例的票據(jù)議價(jià)方法通過將票據(jù)交易事件分別發(fā)送給多個(gè)交易對(duì)象,可以實(shí)現(xiàn)和多個(gè)交易對(duì)象進(jìn)行多人議價(jià),而采用多個(gè)客戶端就可以分別對(duì)不同的票據(jù)品種分別進(jìn)行多人議價(jià),從而可以及時(shí)獲取雙方報(bào)價(jià),節(jié)省了票據(jù)交易時(shí)間,提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
在優(yōu)選實(shí)施例中,s4具體包括以下步驟:
s401,獲取每個(gè)交易對(duì)象的信用等級(jí);
s402,在預(yù)設(shè)交易時(shí)間結(jié)束后顯示每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí);
s403,接收用戶指令,并根據(jù)用戶指令生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格;或者根據(jù)每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí)生成每個(gè)交易對(duì)象的交易評(píng)分,以交易評(píng)分最高的交易對(duì)象作為目標(biāo)交易對(duì)象,并以目標(biāo)交易對(duì)象的報(bào)價(jià)價(jià)格作為目標(biāo)交易價(jià)格。
上述優(yōu)選實(shí)施例可以結(jié)合交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí)生成更加合適的目標(biāo)交易對(duì)象,比如可以選擇信用等級(jí)和報(bào)價(jià)價(jià)格都較高的交易對(duì)象作為目標(biāo)交易對(duì)象,進(jìn)一步提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
在另一優(yōu)選實(shí)施例中,s1中獲取交易對(duì)象列表具體包括以下步驟:
s101,生成用于獲取交易對(duì)象列表的actionevent事件;
s102,通過actionlistener接口監(jiān)聽所述actionevent事件,并把監(jiān)聽到的actionevent事件傳播給對(duì)應(yīng)的監(jiān)聽器;
s103,所述監(jiān)聽器接收actionevent事件,然后執(zhí)行actionlistener接口預(yù)先定義的與所述actionevent事件對(duì)應(yīng)的處理函數(shù),并啟動(dòng)一個(gè)獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用threadworker接口,所述threadworker接口采用表單的數(shù)據(jù)處理方法與存儲(chǔ)有交易對(duì)象信息的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對(duì)象列表;
s104,采用表單的界面處理方法將所述交易對(duì)象列表以彈框的方式返回給第一客戶端的界面。該實(shí)施例中,所述s2具體為:
s201,所述第一客戶端通過調(diào)用函數(shù)submipricetinquiry將所述交易品種、交易數(shù)量和交易對(duì)象列表中的至少一個(gè)交易對(duì)象封裝在所述交易事件中生成第一報(bào)價(jià)請(qǐng)求事件;
s202,將所述第一報(bào)價(jià)請(qǐng)求事件轉(zhuǎn)換為對(duì)應(yīng)的map格式的數(shù)據(jù),并通過socket通信函數(shù)將所述map格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。
上述優(yōu)選實(shí)施例針對(duì)具體的票據(jù)交易事件,在第一客戶端上進(jìn)行模塊化處理,同時(shí)本技術(shù)方案采用專門負(fù)責(zé)事件分發(fā)的線程進(jìn)行處理,提高了票據(jù)交易的速度和效率。
圖2是本發(fā)明實(shí)施例2提供的票據(jù)議價(jià)方法的示意性流程圖,所述票據(jù)議價(jià)方法應(yīng)用于服務(wù)器,如圖2所示,包括以下步驟:
s10,接收所述第一報(bào)價(jià)請(qǐng)求事件;
s20,將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到交易對(duì)象列表中每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,并在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件;
s30,將所述第二報(bào)價(jià)請(qǐng)求事件發(fā)送給所述第一客戶端。
優(yōu)選實(shí)施例中,所述服務(wù)器至少包括第一連接服務(wù)器、消息服務(wù)器、應(yīng)用服務(wù)器和第二連接服務(wù)器,所述s20具體包括以下步驟:
步驟a1,所述第一連接服務(wù)器接收所述第一報(bào)價(jià)請(qǐng)求事件后,對(duì)所述第一報(bào)價(jià)請(qǐng)求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對(duì)象,則執(zhí)行步驟a2,若沒有匹配到交易對(duì)象,則執(zhí)行步驟a3;
步驟a2,通過socket通信函數(shù)將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送給每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,并在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,然后執(zhí)行s30;
步驟a3,將所述第一報(bào)價(jià)請(qǐng)求事件存儲(chǔ)在消息服務(wù)器后,執(zhí)行步驟a4;
步驟a4,應(yīng)用服務(wù)器通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報(bào)價(jià)請(qǐng)求事件,并通過servereventlistener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報(bào)價(jià)請(qǐng)求事件,然后根據(jù)所述第一報(bào)價(jià)請(qǐng)求事件生成對(duì)應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的其他連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報(bào)價(jià)請(qǐng)求事件的全部內(nèi)容;
步驟a5,相關(guān)聯(lián)的第二連接服務(wù)器監(jiān)聽到所述服務(wù)器事件后,對(duì)所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,并在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,然后執(zhí)行s30。
在另一優(yōu)選的實(shí)施例中,將所述第一報(bào)價(jià)請(qǐng)求事件插入到對(duì)應(yīng)的日志表中,根據(jù)所述第一報(bào)價(jià)請(qǐng)求事件的當(dāng)前狀態(tài)找到狀態(tài)機(jī)中所述當(dāng)前狀態(tài)對(duì)應(yīng)的下一個(gè)狀態(tài)信息,并對(duì)述第一報(bào)價(jià)請(qǐng)求事件對(duì)應(yīng)的狀態(tài)機(jī)流程信息進(jìn)行更新后生成對(duì)應(yīng)的服務(wù)器事件。
以下通過一個(gè)票據(jù)交易實(shí)例對(duì)上述步驟進(jìn)行說明。
步驟1,用戶趙六通過客戶端發(fā)送交易事件到服務(wù)器,具體為:
(1)用戶趙六通過交易發(fā)起面板發(fā)起交易,交易內(nèi)容包括交易id、票據(jù)信息和預(yù)設(shè)交易時(shí)間,具體的,交易id為001,票據(jù)信息可以為待交易的一張或者多張票據(jù)的信息,預(yù)設(shè)交易時(shí)間為30分鐘。在其他優(yōu)選實(shí)施例中,所述交易內(nèi)容還可以包括備注信息,方便交易對(duì)象對(duì)交易票據(jù)的其他信息或者交易中的溝通信息進(jìn)行了解。
(2)awt根據(jù)自身機(jī)制,生成actionevent事件。
(3)actionevent監(jiān)聽器通過dealpanel,監(jiān)聽到該actionevent事件。
(4)構(gòu)造請(qǐng)求數(shù)據(jù)buildrequest()后,啟動(dòng)一個(gè)新的threadworker線程。所述新的threadworker線程調(diào)用表單的數(shù)據(jù)處理方法(docommonwork)向存儲(chǔ)有交易對(duì)象信息的連接服務(wù)器請(qǐng)求數(shù)據(jù),連接服務(wù)器接收請(qǐng)求事件“getguestlistevent”,并在內(nèi)存中讀取數(shù)據(jù),生成發(fā)送對(duì)象列表,然后將發(fā)送對(duì)象列表返回給threadworker線程;本實(shí)施例中,發(fā)送對(duì)象列表中包括:張三、李四、王五三個(gè)人。
(5)threadworker線程調(diào)用表單的界面處理方法(doawtwork)將取得的發(fā)送對(duì)象列表返回給畫面主線程,此時(shí)threadworker線程結(jié)束。
(6)用戶趙六的客戶端取得threadworker線程返回的發(fā)送對(duì)象列表,并彈出發(fā)起確認(rèn)畫面。
(7)用戶趙六的客戶端通過發(fā)起確認(rèn)面板發(fā)起交易,并確認(rèn)將步驟(1)中的交易內(nèi)容發(fā)送到發(fā)送對(duì)象列表中的張三、李四、王五三個(gè)人。
(8)客戶端的交易請(qǐng)求管理監(jiān)聽類(inquirymanager)調(diào)用函數(shù)submitinquiry(),生成交易請(qǐng)求事件(dealrequestevent),將畫面的請(qǐng)求數(shù)據(jù)封裝在該交易請(qǐng)求事件中。具體為:
交易請(qǐng)求事件(deal_request)
事件名稱:dealrequestaction
數(shù)據(jù):交易請(qǐng)求事件(dealrequestevent),其中包括交易id,票據(jù)信息、預(yù)設(shè)交易時(shí)間,發(fā)送對(duì)象列表等。
(9)將所述交易請(qǐng)求事件轉(zhuǎn)換為對(duì)應(yīng)的map格式的數(shù)據(jù),并通過socket通信函數(shù)(senddatatoserver)發(fā)送給服務(wù)器。
步驟2,服務(wù)器側(cè)對(duì)事件對(duì)象進(jìn)行處理,具體為:
(10)第一連接服務(wù)器接受到客戶端事件,事件名稱為dealrequestaction;數(shù)據(jù)為交易請(qǐng)求事件(dealrequestevent)。
(11)由于本連接服務(wù)器不處理該事件(dealrequestaction),故將該事件消息發(fā)送到消息服務(wù)器中進(jìn)行存儲(chǔ),并等待其他的應(yīng)用服務(wù)器對(duì)該事件進(jìn)行讀取。
(12)此時(shí),一個(gè)應(yīng)用服務(wù)器as的常駐消息服務(wù)器監(jiān)聽線程監(jiān)聽到該事件后,采用監(jiān)聽器inquirymanagelistener處理該事件,具體為:
處理函數(shù):performinquiryaction
處理事件名稱:dealrequestaction
數(shù)據(jù):交易請(qǐng)求事件(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ī)的下一個(gè)狀態(tài)信息。
(14)更新該筆交易的狀態(tài)機(jī)流程信息后,生成新的服務(wù)器事件(dealrequestactionreply)。
(15)由于本as服務(wù)器不處理該事件(dealrequestactionreply),故將該事件消息發(fā)送到消息服務(wù)器進(jìn)行存儲(chǔ),并等待其他的連接服務(wù)器或者應(yīng)用服務(wù)器進(jìn)行讀取。
(16)此時(shí),第二連接服務(wù)器的常駐消息服務(wù)器監(jiān)聽線程監(jiān)聽到該事件(事件名稱:dealrequestactionreply),并匹配該事件的分發(fā)對(duì)象列表,通過socket通信的方式分別向列表內(nèi)的對(duì)象(張三、李四、王五)發(fā)送信息。
(17)交易請(qǐng)求管理監(jiān)聽類(inquirymanager)調(diào)用函數(shù)receiveinquiry(),進(jìn)行彈窗處理,此時(shí)張三、李四、王五的客戶端上分別出現(xiàn)彈窗,以張三為例,具體為:
交易請(qǐng)求接收面板
交易id:001
票據(jù)信息:顯示一個(gè)或者多個(gè)票據(jù)信息
預(yù)設(shè)交易時(shí)間:30分鐘
狀態(tài):議價(jià)回復(fù)中
發(fā)送方:趙六
接受方:張三。
(18)張三通過對(duì)應(yīng)的第二客戶端接收到該事件后,對(duì)所述票據(jù)信息進(jìn)行選擇,并對(duì)選擇的至少一個(gè)票據(jù)信息進(jìn)行交易報(bào)價(jià),然后通過第二客戶端形成第二報(bào)價(jià)請(qǐng)求事件,并把第二報(bào)價(jià)請(qǐng)求事件發(fā)送給第二連接服務(wù)器,第二連接服務(wù)器把第二報(bào)價(jià)請(qǐng)求事件返回給交易發(fā)起方趙六;在其他優(yōu)選實(shí)施例中,所述第二報(bào)價(jià)請(qǐng)求事件還可以包括張三輸入的備注信息,比如溝通信息等等,方便交易發(fā)起者獲取更全面的票據(jù)交易信息。同時(shí),采用這種報(bào)價(jià)模式,交易對(duì)象可以在預(yù)設(shè)交易時(shí)間內(nèi)多次對(duì)同樣的票據(jù)進(jìn)行報(bào)價(jià)。
(19)待預(yù)設(shè)交易時(shí)間結(jié)束后,公開交易發(fā)起方趙六接收到張三、李四、王五發(fā)送的報(bào)價(jià)分別為9.8萬、10萬和10.5萬,且獲取到張三、李四、王五的信用等級(jí)分別為四星、三星和二星,則可以選擇張三為目標(biāo)交易對(duì)象,9.8萬為目標(biāo)交易價(jià)格,或者選擇李四為目標(biāo)交易對(duì)象,10萬為目標(biāo)交易價(jià)格。
圖3為本發(fā)明另一實(shí)施例提供的第一客戶端的示意性結(jié)構(gòu)圖,如圖3所示,所述第一客戶端包括:
獲取模塊,用于生成交易事件,并獲取與所述交易事件對(duì)應(yīng)的交易對(duì)象列表;
發(fā)送模塊,用于根據(jù)交易事件和交易對(duì)象列表生成第一報(bào)價(jià)請(qǐng)求事件,并將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到服務(wù)器;所述第一報(bào)價(jià)請(qǐng)求事件包括交易品種、交易數(shù)量和交易對(duì)象列表中至少一個(gè)交易對(duì)象;
接收模塊,用于在預(yù)設(shè)交易時(shí)間內(nèi)接收所述交易對(duì)象發(fā)送的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,所述第二報(bào)價(jià)請(qǐng)求事件包括交易對(duì)象對(duì)應(yīng)的報(bào)價(jià)價(jià)格;
生成模塊,用于在預(yù)設(shè)交易時(shí)間結(jié)束后顯示所有交易對(duì)象的報(bào)價(jià)價(jià)格,并生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格。
在一優(yōu)選實(shí)施例中,所述獲取模塊具體包括:
事件觸發(fā)單元,用于生成獲取交易對(duì)象列表的actionevent事件;
事件監(jiān)聽單元,用于通過actionlistener接口監(jiān)聽所述actionevent事件,并把監(jiān)聽到的actionevent事件傳播給對(duì)應(yīng)的監(jiān)聽器;
事件處理單元,用于通過監(jiān)聽器接收actionevent事件,然后執(zhí)行actionlistener接口預(yù)先定義的與所述actionevent事件對(duì)應(yīng)的處理函數(shù),并啟動(dòng)一個(gè)獨(dú)立處理線程,所述獨(dú)立處理線程調(diào)用threadworker接口,所述threadworker接口采用表單的數(shù)據(jù)處理方法與對(duì)應(yīng)的連接服務(wù)器進(jìn)行通信,獲取所述連接服務(wù)器返回的交易對(duì)象列表;
第一顯示單元,用于采用表單的界面處理方法將所述交易對(duì)象列表以彈框的方式返回給第一客戶端的界面。
在另一優(yōu)選實(shí)施例中,所述發(fā)送模塊具體包括:
事件生成單元,用于調(diào)用函數(shù)submipricetinquiry將所述交易品種、交易數(shù)量和交易對(duì)象列表中至少一個(gè)交易對(duì)象封裝在所述交易事件中生成第一報(bào)價(jià)請(qǐng)求事件;
事件發(fā)送單元,用于將所述第一報(bào)價(jià)請(qǐng)求事件轉(zhuǎn)換為對(duì)應(yīng)的map格式的數(shù)據(jù),并通過socket通信函數(shù)將所述map格式的數(shù)據(jù)發(fā)送給第一連接服務(wù)器。
優(yōu)選的,所述生成模塊包括:
信用等級(jí)獲取單元,用于獲取每個(gè)交易對(duì)象的信用等級(jí);
第二顯示單元,用于在預(yù)設(shè)交易時(shí)間結(jié)束后顯示每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí);
目標(biāo)生成單元,用于接收用戶指令,并根據(jù)用戶指令生成目標(biāo)交易對(duì)象和目標(biāo)交易價(jià)格;或者根據(jù)每個(gè)交易對(duì)象的報(bào)價(jià)價(jià)格和信用等級(jí)生成每個(gè)交易對(duì)象的交易評(píng)分,以交易評(píng)分最高的交易對(duì)象作為目標(biāo)交易對(duì)象,并以目標(biāo)交易對(duì)象的報(bào)價(jià)價(jià)格作為目標(biāo)交易價(jià)格。
本發(fā)明實(shí)施例還提供了一種服務(wù)器,具體用于接收所述第一報(bào)價(jià)請(qǐng)求事件,將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送到交易對(duì)象列表中每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,并在預(yù)設(shè)交易時(shí)間內(nèi)獲取所述第二客戶端返回的至少一個(gè)第二報(bào)價(jià)請(qǐng)求事件,然后將所述第二報(bào)價(jià)請(qǐng)求事件發(fā)送給所述第一客戶端。
如圖4所述,為本發(fā)明優(yōu)選實(shí)施例中所述服務(wù)器的示意圖結(jié)構(gòu)圖,如圖4所示,所述服務(wù)器包括:
第一連接服務(wù)器,用于接收所述第一報(bào)價(jià)請(qǐng)求事件,對(duì)所述第一報(bào)價(jià)請(qǐng)求事件的交易發(fā)起者進(jìn)行匹配,若匹配到交易對(duì)象,則通過socket通信函數(shù)將所述第一報(bào)價(jià)請(qǐng)求事件發(fā)送給交易對(duì)象對(duì)應(yīng)的第二客戶端,并接收交易對(duì)象通過第二客戶端發(fā)送的第二報(bào)價(jià)請(qǐng)求事件;以及用于當(dāng)沒有匹配到交易對(duì)象時(shí),則將所述第一報(bào)價(jià)請(qǐng)求事件存儲(chǔ)在消息服務(wù)器中;
消息服務(wù)器,用于存儲(chǔ)所述第一報(bào)價(jià)請(qǐng)求事件和所述服務(wù)器事件;
應(yīng)用服務(wù)器,通過消息監(jiān)聽線程持續(xù)監(jiān)聽所述第一報(bào)價(jià)請(qǐng)求事件,并通過servereventlistener接口讀取與本應(yīng)用服務(wù)器相關(guān)聯(lián)的第一報(bào)價(jià)請(qǐng)求事件,然后根據(jù)所述第一報(bào)價(jià)請(qǐng)求事件生成對(duì)應(yīng)的服務(wù)器事件,并將所述服務(wù)器事件發(fā)送到消息服務(wù)器,等待相關(guān)聯(lián)的第二連接服務(wù)器進(jìn)行讀取,所述服務(wù)器事件包括所述第一報(bào)價(jià)請(qǐng)求事件的全部內(nèi)容;
第二連接服務(wù)器,用于監(jiān)聽并接受所述服務(wù)器事件后,對(duì)所述服務(wù)器事件的交易發(fā)起者進(jìn)行匹配,并通過socket通信函數(shù)將所述服務(wù)器事件發(fā)送給每個(gè)交易對(duì)象對(duì)應(yīng)的第二客戶端,以及接收每個(gè)交易對(duì)象通過第二客戶端發(fā)送的第二報(bào)價(jià)請(qǐng)求事件。
圖5為本發(fā)明實(shí)施例提供的一種票據(jù)議價(jià)系統(tǒng)的示意性結(jié)構(gòu)圖,如圖5所示,包括以上所述的第一客戶端和所述的服務(wù)器。本實(shí)施例的票據(jù)議價(jià)系統(tǒng)采用事件驅(qū)動(dòng)的方式,通過將票據(jù)交易事件分別發(fā)送給多個(gè)交易對(duì)象,可以實(shí)現(xiàn)和多個(gè)交易對(duì)象進(jìn)行多人議價(jià),而采用多個(gè)客戶端就可以分別對(duì)不同的票據(jù)品種分別進(jìn)行多人議價(jià),從而可以及時(shí)獲取雙方報(bào)價(jià),節(jié)省了票據(jù)交易時(shí)間,提高了票據(jù)交易的效率和成功率,實(shí)現(xiàn)了票據(jù)交易雙方利益最大化。
圖6為本發(fā)明另一實(shí)施例提供的終端的結(jié)構(gòu)示意圖,包括所述票據(jù)議價(jià)系統(tǒng)。本發(fā)明的終端可以應(yīng)用在銀行、企業(yè)等機(jī)構(gòu)中,提高了銀行、企業(yè)進(jìn)行票據(jù)交易的效率和成功率,有利于交易市場(chǎng)的有序進(jìn)行。
在本發(fā)明的描述中,需要理解的是,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個(gè)該特征。在本發(fā)明的描述中,“多個(gè)”的含義是至少兩個(gè),例如兩個(gè),三個(gè)等,除非另有明確具體的限定。
在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對(duì)上述術(shù)語的示意性表述不必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。