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