張 明,趙 娜,呂奧博,嚴(yán)俊峰
(1.浙江省地震局,杭州 310013;2.杭州斯瑪特維科技有限公司,杭州 310013)
微信公眾號(hào)在數(shù)字地震觀測(cè)臺(tái)網(wǎng)運(yùn)維工作中的應(yīng)用
張 明1,趙 娜2,呂奧博1,嚴(yán)俊峰1
(1.浙江省地震局,杭州 310013;2.杭州斯瑪特維科技有限公司,杭州 310013)
使用微信公眾號(hào)作為載體搭建一個(gè)可供地震行業(yè)內(nèi)各省局所屬區(qū)域臺(tái)網(wǎng)在日常運(yùn)行維護(hù)中實(shí)現(xiàn)具有運(yùn)維信息采集、運(yùn)維經(jīng)驗(yàn)分類歸檔、后臺(tái)數(shù)據(jù)庫(kù)集中管理、終端訪問及智能檢索等功能模塊的平臺(tái)。儀修人員可以通過關(guān)注微信公眾號(hào)使用文字、語(yǔ)音、圖片等多種形式實(shí)現(xiàn)對(duì)臺(tái)網(wǎng)運(yùn)維信息的收集、發(fā)布和檢索等功能,從而提高地震觀測(cè)臺(tái)網(wǎng)的日常運(yùn)維效率。
微信公眾號(hào);地震臺(tái)網(wǎng)運(yùn)維;信息采集與管理
微信是騰訊公司于2011年1月21日推出的一個(gè)為智能終端提供即時(shí)通訊服務(wù)的免費(fèi)應(yīng)用程序,微信支持跨通信運(yùn)營(yíng)商、跨操作系統(tǒng)平臺(tái)通過網(wǎng)絡(luò)快速發(fā)送免費(fèi)語(yǔ)音短信、視頻、圖片和文字。隨著近些年智能手機(jī)的大范圍普及,經(jīng)統(tǒng)計(jì)截止2013年11月注冊(cè)用戶量已經(jīng)突破3億[1],已經(jīng)成長(zhǎng)為目前亞洲最大用戶群體的移動(dòng)即時(shí)通訊軟件。
運(yùn)維工作是我們地震行業(yè)監(jiān)測(cè)預(yù)報(bào)的基礎(chǔ),是地震監(jiān)測(cè)臺(tái)網(wǎng)運(yùn)行的重要組成部分,是能否獲得高質(zhì)量地震觀測(cè)數(shù)據(jù)的關(guān)鍵環(huán)節(jié)。從 “十五”項(xiàng)目數(shù)字化臺(tái)網(wǎng)建設(shè)到 “十二五”公共服務(wù)建設(shè),隨著各省局臺(tái)網(wǎng)觀測(cè)系統(tǒng)的數(shù)字化和網(wǎng)絡(luò)化進(jìn)程的發(fā)展,臺(tái)網(wǎng)規(guī)模逐漸擴(kuò)大,臺(tái)站數(shù)量逐年增加,各省局的臺(tái)網(wǎng)運(yùn)維任務(wù)也開始逐漸加重。雖然目前中國(guó)地震局監(jiān)測(cè)預(yù)報(bào)司及下屬各省地震局不斷出臺(tái)地震觀測(cè)臺(tái)網(wǎng)運(yùn)行維護(hù)管理辦法和保障機(jī)制的文件,并且每年各臺(tái)網(wǎng)運(yùn)維片區(qū)也多次召開運(yùn)維保障會(huì)議以提供各省市地區(qū)的臺(tái)網(wǎng)運(yùn)維人員進(jìn)行工作交流,但畢竟缺少常態(tài)化的經(jīng)驗(yàn)交流,對(duì)日常維護(hù)工作需要的時(shí)效性無(wú)法解決。
由于不同季節(jié)、不同時(shí)間段的臺(tái)站故障數(shù)量、類型及原因均存在很大差別,理論故障判斷與實(shí)際故障原因也存在一定的差異性。并且各省市地震局隨著陸續(xù)引進(jìn)各種國(guó)內(nèi)、國(guó)外儀器廠商所生產(chǎn)的設(shè)備,各種設(shè)備之間相互搭配組合,傳感器與采集器之間,產(chǎn)出數(shù)據(jù)格式與臺(tái)網(wǎng)的流服務(wù)數(shù)據(jù)格式格式之間的兼容性問題也導(dǎo)致了運(yùn)行故障的頻發(fā)對(duì)維護(hù)人員的業(yè)務(wù)能力提出了更高的要求。因此單純依賴各省局自身責(zé)任區(qū)的臺(tái)網(wǎng)運(yùn)維經(jīng)驗(yàn)對(duì)于一些較為復(fù)雜或出現(xiàn)幾率很低的故障原因判斷和解決帶來了一些困難在一定程度上影響了整個(gè)臺(tái)網(wǎng)的運(yùn)維效率。
所以基于微信公眾號(hào)的實(shí)時(shí)性、便捷性搭建一個(gè)集既能夠完成各省地震局及其所屬臺(tái)網(wǎng)和臺(tái)站維護(hù)工作的統(tǒng)計(jì)存檔,又能夠共享整個(gè)行業(yè)內(nèi)各省局各學(xué)科的運(yùn)維經(jīng)驗(yàn),提供儀修人員日常工作間的交流和學(xué)習(xí)的運(yùn)維經(jīng)驗(yàn)管理分享平臺(tái),對(duì)提升整個(gè)行業(yè)的臺(tái)網(wǎng)運(yùn)維能力和效率是值得思考和實(shí)現(xiàn)的。
通過微信公眾號(hào)作為媒介可以將數(shù)字地震觀測(cè)臺(tái)網(wǎng)日常運(yùn)維過程中產(chǎn)生的各種故障解決方案以文字、圖片、視頻等多媒體信息,通過微信平臺(tái)推送至用戶群個(gè)人終端,從而達(dá)到向用戶提供運(yùn)維經(jīng)驗(yàn)的目的[2]。主要包括以下功能:
(1)運(yùn)維經(jīng)驗(yàn)錄入功能:用戶可以通過手機(jī)終端關(guān)注運(yùn)維經(jīng)驗(yàn)管理平臺(tái)微信公眾號(hào)按照固定格式上傳運(yùn)維方案信息(目前支持文字、圖片、視頻信息上傳),后臺(tái)數(shù)據(jù)庫(kù)會(huì)對(duì)上傳的信息進(jìn)行分類存儲(chǔ)。
(2)運(yùn)維經(jīng)驗(yàn)查詢功能:用戶在運(yùn)維中遇到困難或無(wú)法解決的問題時(shí)可以通過該功能的借鑒類似解決方案 (目前系統(tǒng)支持關(guān)鍵字查詢和模糊查詢兩種查詢方式),同時(shí)如果方案未查詢到系統(tǒng)會(huì)對(duì)用戶進(jìn)行提示是否群發(fā)信息尋求幫助的詢問,從而達(dá)到通過多方面在線溝通達(dá)到解決問題的目的。
(3)運(yùn)維經(jīng)驗(yàn)評(píng)價(jià)功能:當(dāng)用戶查詢到運(yùn)維解決方案后系統(tǒng)會(huì)返回評(píng)價(jià)詢問,同時(shí)系統(tǒng)會(huì)根據(jù)用戶評(píng)價(jià)的結(jié)果給此條方案打分,作為今后的同類運(yùn)維解決方案查詢中優(yōu)先推薦的參考 (在每次查詢時(shí)系統(tǒng)會(huì)返回評(píng)價(jià)分最高的5條至10條運(yùn)維解決方案給予用戶進(jìn)行選擇)。
(4)故障信息統(tǒng)計(jì)功能:通過該模塊用戶可以查詢到某個(gè)儀器在一定時(shí)間段內(nèi)發(fā)生故障的情況,給運(yùn)維人員針對(duì)儀器進(jìn)行改進(jìn)或針對(duì)性的防護(hù)提供參考依據(jù)。
本系統(tǒng)采用B/S結(jié)構(gòu),Eclipse-j2ee為開發(fā)環(huán)境,Oracle11.g為開發(fā)軟件的數(shù)據(jù)庫(kù)服務(wù)程序。硬件配置環(huán)境為:CPU Intel 2.4GHz;內(nèi)存2GB;硬盤5GB以上空閑空間。軟件配置環(huán)境為:Jdk 1.7以上,服務(wù)器tomcat1.7;操作系統(tǒng)windows 2008 sever;開放80端口。系統(tǒng)主要分為四層架構(gòu),分別為展示層、應(yīng)用層、數(shù)據(jù)庫(kù)層、接口層,各部分功能架構(gòu)如圖1所示。
本系統(tǒng)軟件的后臺(tái)數(shù)據(jù)庫(kù)部署在省局臺(tái)網(wǎng)中心服務(wù)器機(jī)房,采用樹形表結(jié)構(gòu)對(duì)軟件平臺(tái)的后臺(tái)數(shù)據(jù)進(jìn)行分類管理。當(dāng)運(yùn)維經(jīng)驗(yàn)錄入時(shí)系統(tǒng)采集到的數(shù)據(jù)信息會(huì)按照規(guī)定的固定格式分別錄入到各基礎(chǔ)數(shù)據(jù)表中,當(dāng)系統(tǒng)進(jìn)行查詢功能時(shí)數(shù)據(jù)庫(kù)會(huì)根據(jù)基礎(chǔ)表和關(guān)聯(lián)表對(duì)信息進(jìn)行匹配,具體的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)如表1所示。
圖1 系統(tǒng)架構(gòu)圖Fig.1 System frame diagram
表1 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)Table 1 The structure design of database table
微信公眾服務(wù)號(hào)消息接口為開發(fā)者提供了與向用戶進(jìn)行消息交互的能力,對(duì)于成功接入消息接口的公眾服務(wù)號(hào),用戶發(fā)消息給公眾號(hào)時(shí),微信公眾平臺(tái)服務(wù)器會(huì)使用HTTP請(qǐng)求對(duì)接入的網(wǎng)址進(jìn)行消息推送,第三方服務(wù)器通過響應(yīng)包返回個(gè)性的回復(fù),從而達(dá)到回復(fù)消息的目的[3]。用戶、微信后臺(tái)和需要開發(fā)的公眾號(hào)后臺(tái)的服務(wù)器三者之間的交互關(guān)系如圖2所示。
圖2 微信公眾號(hào)平臺(tái)數(shù)據(jù)交互方式Fig.2 Class and interface definitions of WeChat public number
系統(tǒng)通過微信提供的公眾號(hào)統(tǒng)一操作接口模式,在移動(dòng)客戶端上,按照各個(gè)設(shè)備的標(biāo)準(zhǔn)界面方式顯示信息內(nèi)容,通過公眾訂閱號(hào)的菜單功能提供對(duì)系統(tǒng)各個(gè)功能的快捷訪問[4],具體的類與接口定義如表2所示。
通過使用微信公眾號(hào)的自定義菜單,在終端操作界面增強(qiáng)用戶與公眾號(hào)的互動(dòng),給用戶提供一個(gè)更好、更便捷的操作體驗(yàn)。目前騰訊微信公眾號(hào)的自定義菜單可提供3個(gè)一級(jí)菜單,每個(gè)一級(jí)菜單下可創(chuàng)建最多5個(gè)二級(jí)菜單。
表2 微信公眾號(hào)類和接口定義Table 2 Class and interface definitions of WeChat public number
具體操作可以通過登陸微信企業(yè)號(hào)在公眾平臺(tái)后臺(tái)管理頁(yè)面-開發(fā)者中心頁(yè)-應(yīng)用中心,點(diǎn)擊已發(fā)布的微信公眾號(hào)進(jìn)入后臺(tái)管理界面,在模式選擇中選擇回調(diào)模式-自定義菜單-設(shè)置進(jìn)入自定義菜單設(shè)置界面進(jìn)行菜單設(shè)計(jì)。本微信公眾號(hào)開發(fā)共設(shè)計(jì)了2個(gè)一級(jí)菜單,3個(gè)二級(jí)菜單,如表3所示。軟件平臺(tái)系統(tǒng)主界面及各功能模塊如圖3所示。
表3 微信公眾號(hào)的菜單設(shè)計(jì)Table.3 Menu design of WeChat public number
圖3 微信公眾號(hào)平臺(tái)系統(tǒng)功能模塊Fig.3 System function module of WeChat public platform
為了實(shí)現(xiàn)上傳服務(wù)需要解析用戶上傳的文本信息,解析到用戶發(fā)送的內(nèi)容后系統(tǒng)會(huì)回復(fù)用戶上傳是否成功。同時(shí)系統(tǒng)后臺(tái)在解析到用戶上傳的信息之后,會(huì)根據(jù)上傳信息的格式解析出每個(gè)字段的內(nèi)容與數(shù)據(jù)庫(kù)進(jìn)行逐一比對(duì),如查詢無(wú)結(jié)果則數(shù)據(jù)庫(kù)會(huì)新建一條維修經(jīng)驗(yàn)記錄。部分關(guān)鍵源碼如下:
WxDevType devtype=devtypes.get (0);
List<WxRepType2DevType>wxRepTypeTrees=wxRepType2devTypeDao.findFianlTree (reptype,devtype.getId ());
f(wxRepTypeTrees==null||wxRepTypeTrees.size()==0){
WxRepTypeTree tree=new WxRepTypeTree();
tree.setIffinal(“1");
tree.setName(reptype);
tree.setParentid (0);
wxRepTypeTreeDao.save (tree);
WxRepType2DevType reptype2devtype=new WxRepType2DevType();
reptype2devtype.setReptypeid(tree.getId());
reptype2devtype.setDevtypeid(devtype.getId());
wxRepType2devTypeDao.save (reptype2devtype);
wxRepTypeTrees.add(reptype2devtype);
}
WxRepReason reason=new WxRepReason();
reason.setName(reasonname);
Serializable reasonid=wxRepReasonDao.save(reason);
WxRepExp exp=new WxRepExp();
exp.setDevid(devtype.getId());
long id=wxRepTypeTrees.get(0).getReptypeid();
exp.setFinalrepid (id);
exp.setInfo (info);
exp.setReasonid ((long)reasonid);
exp.setUserid (userid);
WxRepReason2devType reason2type=new WxRepReason2devType ();
reason2type.setDevtypeid(devtype.getId ());
reason2type.setReasonid ((long) reasonid);
wxRepReason2devTypeDao.save (reason2type);
wxRepExpDao.save (exp);
}catch (Exception e) {
logger.error (e.getMessage ());
return false;
}
return true;
}
在解析到用戶上傳的詢問信息之后解析出每個(gè)字段的內(nèi)容后,系統(tǒng)分析是關(guān)鍵字查詢還是模糊查詢方式,具體的分析方法為判斷字符 “-”的個(gè)數(shù),兩種查詢方法的字符 “-”個(gè)數(shù)不同。再根據(jù)關(guān)鍵字段(如:設(shè)備型號(hào))來查詢?cè)敿?xì)的維修解決方案,查詢不出則會(huì)詢問用戶是否需要群發(fā)求助信息給所有關(guān)注公眾號(hào)的用戶尋求解決方案。實(shí)現(xiàn)關(guān)鍵源碼如下:
public String selectRepTypeInit(String model,String reptype, String userid) {
List<WxDevType> devtypes=new ArrayList<>();
//獲取設(shè)備類型信息
try{
devtypes= wxDevTypeDao.getDevTypeByModel(model);
if(devtypes==null||devtypes.size()==0)return“未查詢到任何設(shè)備”;
if(devtypes.size()!=1)return “查詢到多個(gè)設(shè)備”;
}catch (Exception e) {
logger.error(e.getMessage ());
return “未查詢到任何設(shè)備”;
}
String result= “[維修經(jīng)驗(yàn)查詢]請(qǐng)按前面的編號(hào)選擇查看,結(jié)果: ”;
try{
List<WxRepExp> exps = wxRepExpDao.getExpByRepType(reptype,devtypes.get(0).getId());
if(exps==null||exps.size () ==0) {
//無(wú)結(jié)果詢問請(qǐng)求群發(fā)
UserOperationsUtil.saveOpeartion(userid, “設(shè)備類型: “+devtypes.get(0).getType() +” 型號(hào): “+devtypes.get (0) .getModel () + “維修類型”: +reptype,UserOperationsUtil.USEROP_SENDTOALL);
return “沒有查詢到您想要的結(jié)果,是否需要群發(fā)所有關(guān)注者求助? [1]群發(fā) [2]不群發(fā)”;
}
String templete= “[#1#]#2# ”;
for(int i=0;i<exps.size()&&i<5;i++) {
String oneResult= “”;
oneResult=templete.replace (“#1#”, String.valueOf (i+1));
oneResult=oneResult.replace(“#2#", exps.get (i).getInfo ());
result+=oneResult;
}
UserOperationsUtil.saveOpeartion (userid, exps,UserOperationsUtil.USEROP_REPEXP);
}catch(Exception e) {
logger.error(e.getMessage());
System.out.println(e.getMessage());
}
return result;
}
運(yùn)維經(jīng)驗(yàn)評(píng)價(jià)模塊是一個(gè)通過用戶不斷上傳維修經(jīng)驗(yàn),查詢維修經(jīng)驗(yàn),通過評(píng)價(jià)體系來為維修經(jīng)驗(yàn)調(diào)整優(yōu)先級(jí),用戶評(píng)價(jià)越高,該維修經(jīng)驗(yàn)的優(yōu)先級(jí)越高。從而為下一次查詢推薦更好的維修經(jīng)驗(yàn)。用戶在每一次查詢之前,系統(tǒng)會(huì)主動(dòng)問詢上一次的查詢?cè)u(píng)價(jià),用戶只有在評(píng)價(jià)完之后才能進(jìn)行下一次的查詢。其中評(píng)價(jià)的功能主要源碼如下:
public String rateExp (int select, String userid){try{
UserOperationuo=UserOperations Util.getOperation(userid);
WxRepRaterate=(WxRepRate)uo.getLastSelections();
rate.setRateflag(String.valueOf(select));
wxRepRateDao.update(rate);
WxRepExp exp = wxRepExpDao.get(rate.getRepexpid());
int value=0;
switch (select) {
case 1:
value=3;
break;
case 2:
value=1;
break;
case 3;
value=-1;
break;
case 4:
value=0;
break;
}
if(select==4) {
}else{
double ratecount=exp.getRateusercount();
double proprity=exp.getPriority();
exp.setPriority((proprity*ratecount+value)/(ratecount+1));
exp.setRateusercount((int)ratecount+1);
wxRepExpDao.update(exp);
}
return “評(píng)價(jià)成功”;
}catch(Exception e) {
e.printStackTrace();
logger.error(“rate exp:”+e.getMessage());
return “評(píng)價(jià)失敗”;
}
}
為了用戶能夠查詢到月的故障信息統(tǒng)計(jì)結(jié)果,在每個(gè)月的月初需要統(tǒng)計(jì)上個(gè)月的故障情況。為了實(shí)現(xiàn)該功能,在數(shù)據(jù)庫(kù)里創(chuàng)建一個(gè)周期執(zhí)行計(jì)劃。首先需要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)函數(shù),再創(chuàng)建計(jì)劃,部分關(guān)鍵源碼如下:
public String getMonthRepExpInfo(String type,String year,String month) {
String result= “”;
try{
List <WxMonthRepExp > monthExps =wxMonthRepExpDao.getInfo(type, year,month);
String templete= “[#0#]設(shè)備型號(hào):#1#,數(shù)量#2# ”;
for(int i=0; i<monthExps.size()&&i<5; i++){
String oneResult=templete.replace("#1#",monthExps.get(i).getModel());
oneResult=oneResult.replace(“#2#”,String.valueOf(monthExps.get(i).getCountValue()));
oneResult=oneResult.replace(“#0#”, String,valueOf(i+1));
result+=oneResult;
}
}catch(Exception e) {
logger.error(e.getMessage());
System.out.println(e.getMessage());
}
return result;
}
具體各模塊操作界面如圖4所示:
圖4 各功能模塊操作界面Fig.4 Operation of each function module
通過數(shù)字地震觀測(cè)臺(tái)網(wǎng)運(yùn)維經(jīng)驗(yàn)管理分享平臺(tái)的建設(shè)實(shí)現(xiàn)省地震局及其所屬臺(tái)網(wǎng)臺(tái)站運(yùn)維工作經(jīng)驗(yàn)的統(tǒng)計(jì)存檔和資源共享,面向儀修人員提供了日常工作間的交流和學(xué)習(xí)的平臺(tái)。使得儀修人員可以在儀修任務(wù)過程中遇到的技術(shù)難題以及無(wú)法完成維修時(shí)及時(shí)查詢和借鑒其他兄弟省局儀修人員處理相似故障的經(jīng)驗(yàn)從而提高自身乃至整個(gè)行業(yè)儀修隊(duì)伍的業(yè)務(wù)水平,也能夠幫助新入行同事盡快的熟悉相關(guān)業(yè)務(wù)技能,提高整個(gè)行業(yè)的臺(tái)網(wǎng)運(yùn)維效率。
目前本系統(tǒng)平臺(tái)已經(jīng)初步在項(xiàng)目組人員中進(jìn)行測(cè)試使用,后續(xù)會(huì)逐步完善功能對(duì)全省及片區(qū)運(yùn)維人員進(jìn)行推廣,最后向系統(tǒng)內(nèi)其他省局進(jìn)行推廣應(yīng)用。同時(shí)本平臺(tái)所預(yù)留的二次開發(fā)端口可以在本項(xiàng)目研究的基礎(chǔ)上繼續(xù)開發(fā)出供系統(tǒng)內(nèi)儀修人員在線交流模塊、行業(yè)儀器信息庫(kù)以及各類運(yùn)維知識(shí)庫(kù)等模塊為儀修人員提供更加完善的運(yùn)維經(jīng)驗(yàn)輔助系統(tǒng)。同時(shí)預(yù)留的其他系統(tǒng)接入端口可以與各省局 “十二五”公共服務(wù)系統(tǒng)對(duì)接,作為公共服務(wù)系統(tǒng)的一個(gè)有效補(bǔ)充和臺(tái)網(wǎng)運(yùn)維模塊功能的延伸。
[1]鐘志勇,何威俊,馮煜博.微信公眾平臺(tái)應(yīng)用開發(fā)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版,2014.
[2]劉洋君,徐曉亮,胡 捷.地震信息微信公眾號(hào)的建立與開發(fā)[J].山西地震, 2016, 43(1): 23-24.
[3]蔡利軍,周益飛.微信系統(tǒng)在財(cái)務(wù)查詢服務(wù)中的應(yīng)用[J]. 中國(guó)管理信化,2016, 19(11): 73-74.
[4]帥忻征.微信公眾平臺(tái)與接口開發(fā)計(jì)算機(jī)與網(wǎng)絡(luò)[J].計(jì)算機(jī)和網(wǎng)絡(luò), 2015, 41(24): 46-47.
Application of WeChat Public Number in Digital Seismological Observation Network Operation and Maintenance
ZHANG Ming1, ZHAO Na2, LYU Aobo1, YAN Junfeng1
(1.Zhejiang Earthquake Agency, HangZhou 310013, China;2.Hangzhou Smart Dimension Technology Co.Ltd, HangZhou 310013,China)
Using the WeChat public number as the carrier,the paper buildes a platform for the Provincial Bureau of earthquake industry belonging to the regional network,which has experience in operation and maintenance of information collection, operation and maintenance ofbackstage database classification archiving, centralized management,terminal access and intelligent retrieval module in the daily operation and maintenance implementation.Instrument repair personnel can focus on WeChat public numbers using text,voice,pictures and other forms of network operation and maintenance information collection,publishing and retrieval functions,to improve the efficiency of earthquake observation network daily operations.
WeChat public; Seismic network operations;Information collection and management
P315.9
A
1001-8662(2017)03-0048-07
10.13512/j.hndz.2017.03.007
張 明,趙 娜,呂奧博,等.微信公眾號(hào)在數(shù)字地震觀測(cè)臺(tái)網(wǎng)運(yùn)維工作中的應(yīng)用[J].華南地震,2017,37(3):48-54.[ZHANG Ming,ZHAO
Na, LYU Aobo, et al.Application of WeChat Public Number in Digital Seismological Observation Network Operation and Maintenance[J].South China journal of seismology,2017,37(3):48-54.]
2017-02-06
2016年全國(guó)測(cè)震臺(tái)網(wǎng)青年骨干培養(yǎng)專項(xiàng)(20160512)
張 明(1981-),男,工程師,主要從事地震觀測(cè)臺(tái)網(wǎng)的運(yùn)維和信息系統(tǒng)運(yùn)維工作。
E-mail:44723882@qq.com.