趙鵬 于碧鵬 秦小東
(1.廣州軟件學(xué)院 廣東省廣州市 510990 2.廣州石化中學(xué) 廣東省廣州市 510700)
在現(xiàn)如今,消費(fèi)者們普遍缺乏正品意識以及維權(quán)意識。當(dāng)消費(fèi)者們購買了出現(xiàn)質(zhì)量問題的產(chǎn)品后,無法正確得知該產(chǎn)品的信息來源,而導(dǎo)致無法對問題產(chǎn)品進(jìn)行下一步的處理及追責(zé)。而生產(chǎn)者也因信息的不完整,無法得知其生產(chǎn)產(chǎn)品是在生產(chǎn)環(huán)節(jié)、加工環(huán)節(jié)亦或是流通環(huán)節(jié)發(fā)生的問題所導(dǎo)致產(chǎn)品出現(xiàn)了瑕疵。
產(chǎn)品溯源系統(tǒng)是通過一物一碼技術(shù),實(shí)現(xiàn)商品生產(chǎn)加工、包裝倉儲、渠道物流、終端銷售、真?zhèn)尾樵?、?shù)據(jù)分析等產(chǎn)品全生命周期信息記錄追溯管理,幫助企業(yè)提高商品品牌價(jià)值,綜合競爭力,并獲取商品市場大數(shù)據(jù)信息,為企業(yè)經(jīng)營決策提供有利數(shù)據(jù)依據(jù)。產(chǎn)品溯源系統(tǒng)可針對企業(yè)所生成的不同商品制定相應(yīng)的溯源系統(tǒng),開放性的自定義系統(tǒng)可根據(jù)不同產(chǎn)品所特有的生產(chǎn)流程來自定義溯源流程,實(shí)現(xiàn)企業(yè)多品牌多產(chǎn)品的不同溯源流程需求,完美匹配大型多元化生產(chǎn)企業(yè)的需求。
追本溯源是人類的天性。在漫長的時(shí)間發(fā)展中,歐盟逐漸不僅僅是對牛肉的溯源,慢慢的建立了對工藝品、藝術(shù)品等的溯源系統(tǒng)。
本系統(tǒng)技術(shù)范圍涉及比較廣泛,計(jì)劃采用目前市面上比較主流且開源的開發(fā)體系,技術(shù)選型如下。
微信小程序客戶端是基于微信的平臺進(jìn)行開發(fā)與部署,小程序目前生態(tài)良好,且具有更豐富的功能和出色的使用體驗(yàn),從而降低用戶的使用難度。
微信小程序的restful 風(fēng)格的api 搭建采用spring 系列中的springBoot,是目前企業(yè)中最主流的的框架之一。它基于Spring4.0設(shè)計(jì),不僅繼承了Spring 框架原有的優(yōu)秀特性,而且還通過簡化配置來進(jìn)一步簡化了Spring 應(yīng)用的整個(gè)搭建和開發(fā)過程[6]。Spring Boot 的自動化裝配也是它成為目前主流框架的原因之一。
后臺前端框架采用vue,vue.js 目前最火的一個(gè)前端框架,三大主流前端框架之一,這也是中國人創(chuàng)建的框架語言,并且受到了大量的開發(fā)人員的喜愛。vue是輕量級的,它有很多獨(dú)立的功能或ui庫,幫助減少不必要的dom 操作。
數(shù)據(jù)庫層面采用目前oracle 公司開源的數(shù)據(jù)庫MYSQL,MYSQL 是一個(gè)輕量級關(guān)系型數(shù)據(jù)庫管理系統(tǒng),一般中小型網(wǎng)站的開發(fā)都選擇Linux + MYSQL 作為網(wǎng)站數(shù)據(jù)庫采用阿里云服務(wù)器負(fù)責(zé)承載后臺程序,將后臺數(shù)據(jù)庫的數(shù)據(jù)通過使用后臺api 接口進(jìn)行數(shù)據(jù)處理。
本系統(tǒng)的總體架構(gòu)主要分為,微信小程序客戶端,web 服務(wù)器端,mysql 數(shù)據(jù)庫,其中微信小程序,主要采用微信小程序的原生框架MINA 以及前端UI 組件VANT WEAPP,Vant 是業(yè)界主流的移動端組件庫之一。本系統(tǒng)采用了MVVM 的模式完成微信小程序客戶端的數(shù)據(jù)處理與邏輯綁定。Web 服務(wù)器端的前端主要采用VUE+element UI 擔(dān)任前端的UI 設(shè)計(jì),同樣也是采用MVVM 架構(gòu)。后臺主要使用SpringBoot 進(jìn)行restful 風(fēng)格的api 搭建,以及如何對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)處理,這里的主要采用MVC 架構(gòu)。數(shù)據(jù)庫層面主要采用MYSQL 數(shù)據(jù)庫,通過navicat 數(shù)據(jù)庫可視化界面工具編寫SQL 語句,并將其嵌入到mybatis 的核心頁面中。將寫好的SpringBoot 后端處理系統(tǒng),存放入阿里云服務(wù)器的tomcat web 容器中,將mysql 的數(shù)據(jù),通過navicat 將數(shù)據(jù)拷貝進(jìn)入阿里云服務(wù)器的mysql 數(shù)據(jù)庫中。這里使用的是阿里云服務(wù)器的centos 操作系統(tǒng),并且對centos 系統(tǒng)搭建java 開發(fā)環(huán)境、mysql 開發(fā)環(huán)境?;谖⑿判〕绦虻奶厥庖螅覀冃枰徺I域名和ssl 證書,采用https 的網(wǎng)絡(luò)請求,在tomcat 中我們配置跨域請求和https 證書安裝等。
圖1:微信小程序系統(tǒng)功能模塊設(shè)計(jì)圖
圖2:客戶端業(yè)務(wù)流程圖
圖3:系統(tǒng)總體實(shí)體圖
主要工作是搭建微信小程序溯源系統(tǒng)的客戶端前臺、java 后臺、服務(wù)器的購買與環(huán)境搭建、數(shù)據(jù)庫的開發(fā)和設(shè)計(jì)等。本系統(tǒng)一共分為三個(gè)用戶,分別為微信小程序客戶端用戶、工藝師用戶、管理員用戶。微信小程序用戶,主要是對工藝品的信息進(jìn)行查詢,一共分為三種查詢方式,分別為二維碼查詢、正品碼查詢以及工藝師查詢,通過輸入特定的二維碼可以獲取工藝品的信息。通過正確的二維碼也可以查詢到工藝品信息。通過工藝師的信息可以獲取到工藝師的個(gè)人生平。
后臺管理員主要是對工藝師進(jìn)行數(shù)據(jù)管理,他需要具有可以對工藝師的賬號信息進(jìn)行添加、刪除、查找、修改等功能,由于本系統(tǒng)采用的是管理員一對多工藝師,所以管理員具有能夠?yàn)楣に噹焺?chuàng)建正品碼的權(quán)限,工藝師可以向管理員提出申請正品碼,所以管理員也具有可以對正品碼進(jìn)行創(chuàng)建、刪除、查詢等功能。
微信小程序溯源系統(tǒng)功能模塊設(shè)計(jì)如圖1 所示。
基于微信小程序溯源系統(tǒng)的客戶端業(yè)務(wù)使用流程,進(jìn)入到微信小程序頁面,進(jìn)入到瀏覽主頁,可以選擇三個(gè)模塊,進(jìn)入工藝師模塊,輸入剛剛創(chuàng)建的工藝師的姓名,可以找到創(chuàng)建的工藝師的信息。進(jìn)入正品碼模塊,輸入關(guān)聯(lián)的正品碼,可以查詢到工藝品的溯源信息,以及制作工藝品的工藝師個(gè)人信息,當(dāng)輸入的正品碼有誤時(shí),會將錯(cuò)誤返還給用戶。進(jìn)入二維碼模塊,掃一掃自動生成的二維碼,可以查詢到工藝品的信息。客戶端業(yè)務(wù)流程圖如圖2 所示。
基于微信小程序溯源系統(tǒng)的后臺業(yè)務(wù)使用流程,當(dāng)進(jìn)入系統(tǒng)管理員的權(quán)限之后,可以創(chuàng)建一個(gè)工藝師的信息,然后為工藝師創(chuàng)建他所持有的的正品碼,創(chuàng)建正品碼之后,退出系統(tǒng)管理員界面,進(jìn)入工藝師的個(gè)人信息頁面,在這里可以上傳有關(guān)工藝師的更詳細(xì)的個(gè)人信息,譬如個(gè)人照片,擁有證書等等。然后在工藝品的相關(guān)頁面,創(chuàng)建有關(guān)工藝品的輪播圖,產(chǎn)品圖,制作說明,創(chuàng)建完畢之后,關(guān)聯(lián)工藝師所具有的的正品碼并且生成所對應(yīng)的二維碼,進(jìn)行防偽驗(yàn)證。
E-R 圖是將該系統(tǒng)的需求抽象為一個(gè)信息結(jié)構(gòu)的過程,是該系統(tǒng)編寫各類數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ),用E-R 數(shù)據(jù)模型進(jìn)行概念設(shè)計(jì),可以促進(jìn)本系統(tǒng)的快速開發(fā),例如本系統(tǒng)的工藝師信息就是一個(gè)實(shí)體,它包含了工藝師的個(gè)人信息,姓名,編號,備注,手機(jī)號等屬性,他們之間的關(guān)系可以分為三種:一對一、一對多、多對多。下面羅列了微信小程序系統(tǒng)的主要實(shí)體信息。
由系統(tǒng)的實(shí)體以及實(shí)體與實(shí)體之間的聯(lián)系可以得出系統(tǒng)的E-R圖,微信小程序溯源系統(tǒng)的總體E-R 圖如圖3。
使用E-R 圖確定了該系統(tǒng)的實(shí)體內(nèi)容了解了實(shí)體之間的關(guān)系,下一步通過對數(shù)據(jù)庫表的合理設(shè)計(jì)可以減少數(shù)據(jù)冗余、提高存取速度。
后臺管理員輸入賬號和密碼,經(jīng)過系統(tǒng)驗(yàn)證,登錄進(jìn)入后臺系統(tǒng)對工藝師等信息進(jìn)行數(shù)據(jù)處理,如果輸入的賬號密碼錯(cuò)誤,則提醒用戶輸入賬號有誤,請重新輸入。登錄模塊的ui 分別為賬號輸入框和密碼輸入框以及背景圖片。
后臺管理員登陸成功之后,進(jìn)入工藝師模塊,可以創(chuàng)建工藝師的信息,創(chuàng)建工藝師的樣式為一張表單,表單有四個(gè)輸入框,分別為編號、姓名、手機(jī)號以及備注,其中備注為非必填項(xiàng)。創(chuàng)建的工藝師信息為系統(tǒng)不曾創(chuàng)建過的信息,如果創(chuàng)建工藝師的姓名、手機(jī)號、編號存在,那么創(chuàng)建失敗并給于提示。
后臺管理員對工藝師的個(gè)人信息進(jìn)行修改,點(diǎn)擊修改按鈕,進(jìn)入修改信息的表單,修改信息的表單由4 個(gè)輸入框組成,其中工藝師的編號不允許被修改為禁止?fàn)顟B(tài)。進(jìn)入頁面會獲得被修改工藝師的個(gè)人信息,當(dāng)數(shù)據(jù)修改完成,點(diǎn)擊確定按鈕即可修改工藝師的信息。微信小程序客戶端用戶進(jìn)入正品碼模塊,輸入正確的正品碼,可以查詢到工藝品的信息和制造它的工藝師的介紹。
微信小程序客戶進(jìn)入主頁,點(diǎn)擊二維碼模塊,進(jìn)入二維碼模塊,通過獲取特定的二維碼,通過二維碼掃一掃可以獲取與之關(guān)聯(lián)的工藝品信息。微信小程序進(jìn)入工藝師查詢模塊,輸入工藝師對應(yīng)的姓名可以獲取工藝師的個(gè)人信息等。
測試在本系統(tǒng)中十分的重要,如果測試不合格可能會導(dǎo)致系統(tǒng)運(yùn)行時(shí)崩潰。所以項(xiàng)目開發(fā)完畢,結(jié)合微信小程序客戶端,和后臺系統(tǒng)進(jìn)行全面的測試,在微信小程序客戶端對各個(gè)功能模塊進(jìn)行功能測試,在后臺服務(wù)器的客戶端對數(shù)據(jù)錄入進(jìn)行功能測試。該系統(tǒng)采用黑盒測試的方法,根據(jù)需求分析對各個(gè)模塊進(jìn)行功能測試。性能測試采用的是微信小程序開發(fā)者工具提供的測試工具,通過測試報(bào)告進(jìn)行性能分析。
正品碼查詢工藝品信息,是客戶端的主要模塊之一,通過這個(gè)模塊我們可以了解到工藝品的溯源信息和制造他的工藝師的個(gè)人信息。這里對客戶端用戶輸入的正確的正品碼和輸入錯(cuò)誤的正品碼以及不輸入正品碼進(jìn)行測試。
通過二維碼掃一掃查詢工藝品信息,這里微信小程序客戶端用戶獲取特殊的二維碼,通過主頁的二維碼模塊進(jìn)行測試掃一掃,不同的二維碼可以獲取到不同的工藝品信息。這里測試輸入正確的二維碼和輸入錯(cuò)誤的二維碼進(jìn)行測試。通過輸入工藝師的姓名可以查詢到工藝師的個(gè)人圖片、證書信息等等,這里測試輸入存在的工藝師、不存在的工藝師以及輸入的工藝師為空的情況。
管理員后臺登錄模塊,是操作后臺程序的門戶,主要功能就是驗(yàn)證輸入的賬號密碼是否正確,防止有心人惡意篡改數(shù)據(jù)。本次測試分為三種方案輸入正確的賬號密碼、錯(cuò)誤的賬號密碼、不輸入賬號密碼的情況。
性能測試是檢驗(yàn)本系統(tǒng)能否在高并發(fā)等極端情況下能否抗住數(shù)據(jù)流量的沖擊,以及正常負(fù)載和異常負(fù)載下的各項(xiàng)性能指標(biāo)。本系統(tǒng)采用微信小程序開發(fā)者工具自帶的測試工具進(jìn)行測試。測試結(jié)果總分87 分,性能、體驗(yàn)、最佳實(shí)踐基本均超過合格線。因此本系統(tǒng)在性能方面基本沒有問題。