本發(fā)明涉及智能電視,特別是一種基于模板的參數(shù)可選擇化多媒資源接入實(shí)現(xiàn)方法。
背景技術(shù):
1、隨著數(shù)字媒體環(huán)境的不斷發(fā)展,用戶對(duì)電視內(nèi)容的多樣性和豐富度的需求不斷增長(zhǎng)。為了滿足用戶的需求并提高市場(chǎng)競(jìng)爭(zhēng)力和營(yíng)收,同時(shí)面對(duì)日益繁瑣的媒資參數(shù)映射轉(zhuǎn)換和對(duì)接多個(gè)媒資資源提供方的復(fù)雜性,運(yùn)營(yíng)商迫切需要一種快速、靈活地接入多種媒資資源的方法,以有效整合和利用多方媒資資源。
2、傳統(tǒng)的媒資資源接入方式通常采用直接耦合,即使用方工程直接對(duì)接資源方的媒資資源并進(jìn)行參數(shù)映射轉(zhuǎn)換。這種方式存在一些明顯的問題:
3、適應(yīng)性差:當(dāng)資源方的參數(shù)或接口發(fā)生變化時(shí),使用方必須頻繁修改代碼來適應(yīng)變化;代碼冗余:當(dāng)多個(gè)使用方都需要對(duì)接某個(gè)資源方時(shí),各使用方工程中會(huì)重復(fù)編寫相似的代碼來處理媒資參數(shù)映射轉(zhuǎn)換;擴(kuò)展性差:直接耦合的方式難以快速接入新的資源方;維護(hù)難度大:隨著資源方和使用方數(shù)量的增加,維護(hù)直接耦合的系統(tǒng)變得越來越復(fù)雜。
4、為了改進(jìn)這些問題,通常采用提取中間層的方法,將使用方和資源方的參數(shù)轉(zhuǎn)換進(jìn)行統(tǒng)一處理。然而,這種改進(jìn)方式仍存在局限性:
5、適應(yīng)性不夠:即使有中間層,參數(shù)變化時(shí)仍需修改代碼;擴(kuò)展性不夠:難以快速接入新的使用方和資源方,需要開發(fā)相應(yīng)接口代碼;維護(hù)成本較高:參數(shù)映射與具體的編碼轉(zhuǎn)換直接耦合,邏輯復(fù)雜,不利于代碼維護(hù);接口統(tǒng)用性差:不同的使用方與資源方對(duì)接,一般都需要開發(fā)對(duì)應(yīng)的接口;靈活性受限:運(yùn)營(yíng)不能對(duì)使用方與資源方參數(shù)進(jìn)行配置管理、難以實(shí)現(xiàn)同一使用方內(nèi)容動(dòng)態(tài)靈活對(duì)多個(gè)資源方媒資參數(shù)的整合等。
技術(shù)實(shí)現(xiàn)思路
1、為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的是提供一種基于模板的參數(shù)可選擇化多媒資源接入實(shí)現(xiàn)方法,本發(fā)明解決了傳統(tǒng)媒資資源接入方式適應(yīng)性差、代碼冗余、擴(kuò)展性差和維護(hù)難度大等問題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種基于模板的參數(shù)可選擇化多媒資源接入實(shí)現(xiàn)方法,包括以下步驟:
3、步驟1、參數(shù)配置管理:對(duì)使用方和資源方的媒資內(nèi)容參數(shù)進(jìn)行配置化處理,包括參數(shù)信息配置、參數(shù)可選值類型和值范圍配置,并將配置數(shù)據(jù)存儲(chǔ)于mysql表中;用戶通過前端頁(yè)面進(jìn)行使用方和媒資方的參數(shù)信息進(jìn)行配置修改,并更新到數(shù)據(jù)庫(kù)表中;
4、步驟2、參數(shù)映射配置:前端根據(jù)參數(shù)數(shù)據(jù)動(dòng)態(tài)渲染生成參數(shù)映射配屬頁(yè)面,實(shí)現(xiàn)使用方與一個(gè)或者多個(gè)資源方參數(shù)映射關(guān)聯(lián)管理,進(jìn)行多個(gè)資源方關(guān)聯(lián)時(shí),需要針對(duì)使用參數(shù)與多個(gè)對(duì)應(yīng)的媒資參數(shù)設(shè)置優(yōu)先級(jí),并將映射關(guān)聯(lián)信息存儲(chǔ)于mysql表中;
5、步驟3、參數(shù)映射實(shí)現(xiàn):根據(jù)使用方標(biāo)識(shí)與模板id查詢參數(shù)映射配置模板數(shù)據(jù),并異步多線程獲取資源方媒資數(shù)據(jù),再根據(jù)參數(shù)對(duì)應(yīng)的映射配置和優(yōu)先級(jí)配置進(jìn)行參數(shù)映射轉(zhuǎn)換,生成映射轉(zhuǎn)換的json數(shù)據(jù);
6、步驟4、參數(shù)映射動(dòng)態(tài)適應(yīng):參數(shù)映射配置模板基于配置的媒資參數(shù)生成,映射關(guān)系存儲(chǔ)于mysql表中;
7、步驟5、媒資參數(shù)使用:使用方通過參數(shù)映射轉(zhuǎn)換統(tǒng)一接口獲取生成的媒資參數(shù)json數(shù)據(jù),并根據(jù)自身需求進(jìn)行使用。
8、作為本發(fā)明的進(jìn)一步改進(jìn),在步驟1中,所述媒資內(nèi)容參數(shù)包括參數(shù)字段paramtype、參數(shù)字段iscustom、參數(shù)字段valuetype、參數(shù)字段defaultvalue和參數(shù)字段priority;其中:參數(shù)字段paramtype用于區(qū)分參數(shù)使用方與資源方;參數(shù)字段iscustom用于區(qū)分參數(shù)是否為使用方自定義;參數(shù)字段valuetype用于記錄參數(shù)值類型;參數(shù)字段defaultvalue用于設(shè)置參數(shù)默認(rèn)值,供在進(jìn)行參數(shù)模板配置時(shí)選擇;參數(shù)字段priority用于設(shè)置資源方參數(shù)優(yōu)先級(jí),當(dāng)使用方同時(shí)對(duì)接多個(gè)資源方,進(jìn)行參數(shù)映射時(shí)決定優(yōu)先采用哪個(gè)資源方的參數(shù)。
9、作為本發(fā)明的進(jìn)一步改進(jìn),參數(shù)字段paramtype中,使用方paramtype值用負(fù)數(shù)表示,從-1開始,資源方paramtype值用正數(shù)表示,從而1開始;當(dāng)需要新增其他參數(shù)使用方或資源方時(shí),新增對(duì)應(yīng)的paramtype值即可進(jìn)行區(qū)分。
10、作為本發(fā)明的進(jìn)一步改進(jìn),參數(shù)字段iscustom中,iscustom值為0時(shí),表示參數(shù)非使用方特有,iscustom值為1時(shí),表示參數(shù)為使用方特有;當(dāng)參數(shù)為使用方特有時(shí),允許使用方配置自定義參數(shù)并設(shè)置默認(rèn)值。
11、作為本發(fā)明的進(jìn)一步改進(jìn),參數(shù)字段defaultvalue與參數(shù)字段iscustom存在關(guān)聯(lián),當(dāng)iscustom值為0時(shí),defaultvalue值表示非使用方特有的自定義參數(shù)的默認(rèn)值,當(dāng)iscustom值為1時(shí),defaultvalue值表示使用方特有的自定義參數(shù)的默認(rèn)值;且defaultvalue值為非使用方特有的自定義參數(shù)的默認(rèn)值時(shí),當(dāng)且僅當(dāng)使用方與資源方參數(shù)映射失敗時(shí)使用。
12、作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟2具體包括以下步驟:
13、步驟2.1、前端先請(qǐng)求獲取使用方與資源方配置參數(shù)的json集合對(duì)象paramassolist<mediaparamassoresp>,mediaparamassoresp實(shí)體包含參數(shù)類型paramtype、列名columnname、參數(shù)集合paramlist<mediaparamresp>字段;參數(shù)集合paramlist<mediaparamresp>的mediaparamresp實(shí)體包含參數(shù)標(biāo)識(shí)id、參數(shù)英文名param、參數(shù)中文名paramname、參數(shù)說明remark、是否是自定義參數(shù)iscustom、參數(shù)值類型valuetype、參數(shù)優(yōu)先級(jí)priori?ty、參數(shù)默認(rèn)值defaultvalue字段信息;
14、步驟2.2、參數(shù)字段iscustom如果是自定義參數(shù),前端渲染頁(yè)面時(shí),將根據(jù)響應(yīng)參數(shù)defaultvalue是否有值,確定自定義參數(shù)值是否將自動(dòng)填充,還是用戶可自由填寫;
15、步驟2.3、參數(shù)映射配置頁(yè)面動(dòng)態(tài)渲染時(shí),前端根據(jù)得到的paramassolist<mediaparamassoresp>參數(shù)集合對(duì)象動(dòng)態(tài)渲染生成參數(shù)映射配屬表格,paramassolist集合的長(zhǎng)度決定著表格的列數(shù),paramassolist集合每個(gè)元素中的columnname字段內(nèi)容決定著每列表頭,paramassolist集合每個(gè)元素中的paramlist<mediaparamresp>集合對(duì)象的長(zhǎng)度決定著其對(duì)應(yīng)列可配置參數(shù)的最大數(shù)量,即最大行數(shù),paramlist集合中的內(nèi)容決定著表格每列數(shù)據(jù)單元格內(nèi)可配置的數(shù)據(jù);對(duì)于每列對(duì)應(yīng)paramlist集合將會(huì)收集其中的paramname為一個(gè)集合,展示為一個(gè)paramname下拉列表,實(shí)現(xiàn)參數(shù)的選擇化配置。
16、作為本發(fā)明的進(jìn)一步改進(jìn),在步驟2.2中,對(duì)于用戶自由填寫的參數(shù)值統(tǒng)一采用varchar類型存儲(chǔ),并且以valuetype參數(shù)標(biāo)識(shí)自定義參值類型,確保參數(shù)映射處理時(shí),自定義參數(shù)值能夠正常強(qiáng)制類型轉(zhuǎn)換。
17、作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟3具體包括以下步驟:
18、步驟3.1、使用方獲取選擇某個(gè)參數(shù)模板,傳遞使用方參數(shù)、模板id參調(diào)用中轉(zhuǎn)平臺(tái)提供的接口;
19、步驟3.2、接口根據(jù)傳遞的使用方標(biāo)識(shí)與參數(shù)模板id查詢是否存在對(duì)應(yīng)的參數(shù)映射配置模板數(shù)據(jù);
20、步驟3.3、如果沒有,直接返回提示;如果有,則提前參數(shù)映射配置數(shù)據(jù)中的資源方id標(biāo)識(shí)信息,異步多線程獲取資源方提供的媒資數(shù)據(jù);
21、步驟3.4、對(duì)獲取到的媒資數(shù)據(jù)集合進(jìn)行遍歷解析,根據(jù)參數(shù)映射配置模板數(shù)據(jù)進(jìn)行參數(shù)的動(dòng)態(tài)映射轉(zhuǎn)換;
22、步驟3.5、將映射轉(zhuǎn)換得到的數(shù)據(jù)轉(zhuǎn)換為json數(shù)據(jù)返回。
23、作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟3.4具體包括以下步驟:
24、步驟3.4.1、先根據(jù)參數(shù)映射模板中的iscustom字段判斷當(dāng)前處理的參數(shù)是否是使用方特有,如果是,則取配置的默認(rèn)值defaul?tvalue,反之進(jìn)行下一步;
25、步驟3.4.2、去資源方的媒資數(shù)據(jù)中,根據(jù)參數(shù)名獲取當(dāng)前參數(shù)對(duì)應(yīng)的參數(shù)值;
26、步驟3.4.3、若參數(shù)轉(zhuǎn)換完畢,則進(jìn)行下一步。
27、作為本發(fā)明的進(jìn)一步改進(jìn),在步驟3.4.2中,當(dāng)存在多個(gè)資源方時(shí),首先對(duì)比當(dāng)前參數(shù)在每個(gè)資源方中的優(yōu)先級(jí),優(yōu)先級(jí)高的,優(yōu)先選擇,之后再根據(jù)映射參數(shù)模板的中valuetype字段值,進(jìn)行使用方與資源方的參數(shù)類型轉(zhuǎn)換;如果某個(gè)資源方參數(shù)出錯(cuò)或轉(zhuǎn)換失敗,自動(dòng)切換到下一優(yōu)先級(jí)的參數(shù);如果直到最后一個(gè)資源方參數(shù)都匹配處理失敗,則選擇配置的默認(rèn)值defaultvalue。
28、本發(fā)明通過構(gòu)建媒資參數(shù)映射中轉(zhuǎn)平臺(tái),管理媒資參數(shù)配置,動(dòng)態(tài)渲染生成使用方和資源方參數(shù)映射配屬頁(yè)面,將參數(shù)映射與具體的編碼轉(zhuǎn)換解耦,能快速接入多個(gè)媒資資源,實(shí)現(xiàn)媒資內(nèi)容參數(shù)的靈活映射組合,并提供統(tǒng)一的響應(yīng)接口。這種創(chuàng)新方法簡(jiǎn)化了媒資參數(shù)映射和轉(zhuǎn)換過程,降低了維護(hù)和升級(jí)的復(fù)雜性,提高了系統(tǒng)的靈活性和效率,為提升用戶體驗(yàn)和增加運(yùn)營(yíng)收入提供了可靠的技術(shù)支持。
29、本發(fā)明的有益效果是:
30、1、傳統(tǒng)參數(shù)映射,使用方與資源方參數(shù)都在代碼中寫死,配置過程繁瑣、不直觀、維護(hù)成本高,而本發(fā)明針對(duì)使用方和資源方的媒資內(nèi)容參數(shù),引入配置化處理,在前端頁(yè)面進(jìn)行參數(shù)配置管理,將相關(guān)信息保存于mysql表中。參數(shù)的頁(yè)面配置化管理,方便了參數(shù)管理,降低了維護(hù)成本,同時(shí)提高了系統(tǒng)的穩(wěn)定性和可維護(hù)性,使其能夠動(dòng)態(tài)適應(yīng)變化,且能夠支持更多的運(yùn)營(yíng)需求,如:配置己方特有參數(shù)并設(shè)置默認(rèn)候選值,做到參數(shù)映射即轉(zhuǎn)即用、配置映射參數(shù)保底默認(rèn)值,保證資源方響應(yīng)參數(shù)值缺失時(shí),參數(shù)映射仍然正??捎谩⒃O(shè)置使用方映射資源方參數(shù)優(yōu)先級(jí)等等。
31、2、傳統(tǒng)參數(shù)映射存在每次只能實(shí)現(xiàn)一對(duì)一映射、不靈活、擴(kuò)展性差等問題。本發(fā)明引入了參數(shù)優(yōu)先級(jí)配置的機(jī)制,實(shí)現(xiàn)了多方資源方參數(shù)整合,使系統(tǒng)能夠根據(jù)特定的優(yōu)先級(jí)設(shè)置,優(yōu)先選擇特定參數(shù)進(jìn)行映射。同時(shí)通過設(shè)置合適的優(yōu)先級(jí)可以實(shí)現(xiàn)系統(tǒng)的容錯(cuò)機(jī)制,在某個(gè)資源方參數(shù)出錯(cuò)時(shí)自動(dòng)切換到下一優(yōu)先級(jí)的參數(shù),從而保障了系統(tǒng)的穩(wěn)定性和可靠性。通過此機(jī)制,系統(tǒng)能夠靈活地根據(jù)使用方需求的優(yōu)先級(jí),組合形成最適合的參數(shù)映射方案,實(shí)現(xiàn)對(duì)多方內(nèi)容參數(shù)的靈活映射組合。這項(xiàng)創(chuàng)新進(jìn)一步提升了系統(tǒng)的智能性和適應(yīng)性,為數(shù)字媒體環(huán)境下的通信與協(xié)作提供了更加全面和高效的解決方案。
32、3、參數(shù)映射實(shí)現(xiàn),常規(guī)需要配置一個(gè)json字符串模板,通過$占位符代替需要替換的實(shí)際值來實(shí)現(xiàn)參數(shù)映射,如:{"name:${t?itle},"subname":${subtitle}",…},這種方式存在配置不方便,操作不夠直觀,修改麻煩等特點(diǎn),而本發(fā)明的參數(shù)映射配屬是根據(jù)配置的使用方和資源方參數(shù)動(dòng)態(tài)渲染生成的一個(gè)參數(shù)映射配屬表格頁(yè)面,支持動(dòng)態(tài)接入新的使用方與資源方,實(shí)現(xiàn)了參數(shù)映射配屬頁(yè)面化管理,使參數(shù)映射操作更加直觀、簡(jiǎn)便,降低了運(yùn)營(yíng)的操作難度,提升了運(yùn)營(yíng)操作效率。
33、4、使用方與資源方相關(guān)參數(shù)映射信息存儲(chǔ)于mysql表中,將參數(shù)映射與具體的編碼轉(zhuǎn)換解耦,降低代碼開發(fā)、維護(hù)成本,且能夠?qū)崿F(xiàn)靈活的參數(shù)組合,支持不同類型的媒資內(nèi)容,有效確保各類參數(shù)都能夠有效映射。
34、5、由于參數(shù)映射模板的映射關(guān)系時(shí)存儲(chǔ)于mysql表中,且是基于配置的參數(shù)生成的,彼此存在關(guān)聯(lián)關(guān)系,當(dāng)需要進(jìn)行參數(shù)變動(dòng)時(shí),只需要在參數(shù)配置管理頁(yè)面進(jìn)行配置修改即可,無需對(duì)已編寫的代碼進(jìn)行改動(dòng),有效降低了代碼維護(hù)難度,提升了運(yùn)營(yíng)操作效率。