◇寶雞文理學院計算機學院 郭正輝 任曉莉
本文提出設計一套電子商務與物聯網技術相融合的農產品助推系統,主要分為電商銷售平臺、農產品采收信息采集模塊和NFC溯源模塊三個部分。設計電商銷售平臺后端使用Spring Boot搭建,提供數據接口服務,移動端采用Flutter開發提供電商購買的操作界面。農產品采收信息采集模塊采用壓力傳感器對農產品采摘時的重量、攝像頭對外觀品相等信息進行測量。NFC溯源模塊利用張貼在農產品表面的NFC標簽進行溯源查詢,將NFC標簽中的唯一ID在區塊鏈中進行存儲,防止標簽被篡改,使消費者可以獲取源產信息。
由于地區經濟不發達,寶雞的優質農產品依然采用傳統農商上門采購的被動銷售方式,不但定價十分被動,而且不利于農產品的溯源體系建立。針對傳統銷售方式的不足,提出設計一套電子商務與物聯網技術相融合的農產品助推系統[1],利用電商直銷的方式為農戶打開銷路,利用NFC技術進行溯源體系的支持,從源頭進行質量把控。
本設計的硬件部分可以分為農產品信息采集、NFC標簽簽發和產源地透景三個部分,軟件部分可以分為農產品銷售平臺、農產品信息采集、NFC區塊鏈溯源、農產品品相分析等程序。總體的軟件功能圖如圖1所示。

圖1 總體軟件功能框圖
本次設計中在銷售平臺服務端部分使用MySQL數據庫進行數據的管理和存儲,在系統設計之初,需要對數據庫的結構進行設計,保證所設計的數據庫可以保證使用的前提下,做到較低的冗余性和數據所占空間的合理性。
數據庫的設計過程通過數據庫的概念設計、邏輯設計和物理設計三方面展開。由于篇幅的限制,這里只給出邏輯設計部分,系統數據庫相關的邏輯設計如下所示。
(1)文章(id,創建人,創建時間,最后更新人,最后更新時間,作者,標題)。
(2)banner(id,創建人,創建時間,最后更新人,最后更新時間,banner id,界面,參數,標題,類型,banner鏈接)。
(3)欄目(id,創建人,創建時間,最后更新人,最后更新時間,編碼,名稱)。
(4)邀約人信息(id,創建人,創建時間,最后更新人,最后更新時間,聯系郵箱,聯系電話,備注,邀約人姓名)。
(5)消息發送(id,創建人,創建時間,最后更新人,最后更新人,發送類,名稱,短信模板)。
(6)消息模板(id,創建人,創建時間,最后更新人,最后更新時間,編號,發送條件,內容,發送者id,標題,消息類型)。
(7)專題(id,創建人,創建時間,最后更新人,最后更新時間,是否禁用,專題文章,商品id,閱讀量,標題)。
(8)郵寄地址(id,創建時間,最后更新時間,詳細地址,地區編碼,市,縣區,用戶id,是否默認,是否刪除,收件人,郵政編碼,省份)。
(9)商品類別(id,創建人,創建時間,最后更新人,最后更新時間,屬性名,商品名,商品類別id)。
(10)商品屬性(id,創建人,創建時間,最后更新人,最后更新時間,屬性值,屬性id)。
(11)購物車(id,創建時間,最后更新時間,數量,商品id,sku id,用戶id)。
(12)商城分類(id,創建人,創建時間,最后更新人,最后更新時間,圖標,名稱,鏈接地址)。
(13)banner類別(id,創建人,創建時間,最后更新人,最后更新時間,bannerid,類別id)。
(14)收藏(id,創建時間,最后更新時間,商品id,用戶id)商品(id,創建人,創建時間,最后更新人,最后更新時間,產品簡介,產品詳情,大圖列表,類別id,是否刪除,是否為人氣商品,是否為新品推薦,是否上架,收藏數,名稱,小圖,價格,庫存)。
(15)商品sku(id,創建時間,創建人,最后更新時間,最后更新人,sku編碼,商品id,sku名稱,原價,售價,庫存)。
(16)訂單(id,創建時間,最后更新時間,管理員備注,確認收貨時間,優惠券抵扣金額,收貨信息,快遞公司,用戶id,訂單備注,訂單號,支付狀態,支付類型,實付金額,配送費用,快遞單號,出庫時間,狀態,總交易,交易金額)。
(17)訂單信息(id,創建時間,最后更新時間,數量,商品id,所屬訂單id,sku id,單價,合計)。
(18)訂單日志(id,創建時間,最后更新時間,日志詳情,所屬訂單id)。
(19)管理用戶(id,注冊時間,最后登錄時間,頭像,性別,最后登錄時間,手機號,昵稱,密碼,密碼鹽)。
(20)系統配置(id,創建人,創建時間,最后更新人,最后更新時間,備注,參數名稱,參數值)。
(21)用戶分組(id,創建人,創建時間,最后更新人,最后更新時間,分組名稱,分組編號,父id,所屬分組,簡稱,提示)。
(22)物流公司(id,創建人,創建時間,最后更新人,最后更新時間,公司編碼,是否禁用,公司名稱,排序)。
(23)登錄日志(id,創建時間,ip地址,日志名稱,消息,狀態)。
(24)系統菜單(id,創建人,創建時間,最后更新人,最后更新時間,編號,組件配置,是否隱藏,圖標,是否為菜單,是否默認打開,級別,名稱,父菜單編號,遞歸菜單編號,狀態,鼠標懸停提示,連接)。
(25)通知(id,創建人,創建時間,最后更新人,最后更新時間,內容,標題,類型)。
(26)操作日志(id,創建時間,類型,日志名稱,日志類型,詳細信息,方法,狀態)。
(27)分級顯示控制(id,菜單id,role id)角色(id,創建時間,創建人,最后更新時間,最后更新人,分組id,角色名稱,角色編號,所屬父id,提示,版本)。
(28)用戶賬號(id,創建人,創建時間,最后更新時間,最后更新人,作者,內容,欄目id,分組id,郵箱,姓名,密碼,聯系方式,角色id,密碼鹽,性別,狀態)。
與大多數農產品在線銷售方式相同,本系統農產品銷售平臺部分也采用了“服務端+移動端”的形式向用戶提供服務。服務端程序使用Spring boot作為基礎web服務框架,將所有服務使用微服務的架構方式進行,農戶商家通過在服務端的管理界面進行農商產品的信息上傳錄入,再通過API接口到達消費者的手機上。消費者通過手機APP可以即時瀏覽新上架的新鮮農產品,可以對采收時間進行預約把控,獲得最新鮮的時令農時果蔬。
(1)服務端。農產品助推系統的服務端使用Java語言編寫,通過Vue實現后臺管理界面。服務端后端程序提供HTTP API接口,可以通過瀏覽器對后臺銷售的農產品進行信息錄入上傳、已有信息進行更新刪除等操作。在進行農產品信息管理之前必須進行登錄操作,之后便可以進行商品、用戶等信息的管理。
服務端遵循MVC三層架構模式并融合了時下流行的微服務+SPA單頁應用開發模式。服務端為Browser/Server體系結構應用,數據交互控制部分由服務端的控制器層進行邏輯實現,數據庫的讀寫以及數據持久層則依賴于模型層代碼進行維護。當農戶商家對后臺農產品數據更新后,通過動態的數據交互方式可以實現全體用戶的同步更新,降低了維護難度。服務端的管理流程圖如圖2所示。

圖2 服務端管理流程圖
(2)移動端。銷售平臺的移動端采用跨平臺的Flutter方案進行開發[2],代碼邏輯使用Dart語言編寫實現。消費者用戶在移動端對自己的會員信息進行維護,錄入收貨信息、配送方式等信息。在登錄后,用戶可以進行農產品的在線選購,通過添加購物車操作將產品加入購物車,此時可以進行其他商品的瀏覽操做,當需要付款購買時,僅需要再次打開購物車即可。
在提交訂單后,便可以等待賣家的物流配送,整體的操作流程如圖3所示。

圖3 移動端操作流程圖
為了對追溯農產品進行充足的基礎數據準備,在采收環節將通過農產品品相圖像及采收時的鮮重進行數據的采集工作。采集程序通過獲取來自硬件通過網絡發送的傳感器數值[3],顯示在nodejs編寫的圖形界面中。通過對攝像頭的控制,將果蔬等農產品的品相圖像進行獲取,并進行數據記錄,作為溯源查詢的依據。農產品信息采集程序運行流程圖如圖4所示:

圖4 農產品信息采集程序流程圖
(1)品相圖像采集。品相圖像數據的采集主要依賴攝像頭進行,通過Linux中的fswebcam進行攝像頭的調用。程序在觸發控制按鈕后執行拍照代碼塊,執行拍照命令,將農產品的照片進行存儲。在用戶進行溯源查詢時,可以獲取原始采摘時的果蔬等農產品的品相圖像記錄。
(2)稱重采集。在農產品采收后,會使用稱重模塊對其進行鮮重稱重并將稱重數據進行記錄,為追溯提供基礎數據。當用戶購買產品后,通過追溯查詢這些信息就可以對水分等營養物質的流失進行估算,進而把控農產品的新鮮程度。
(1)NFC標簽簽發。NFC標簽具有唯一的ID,且不可進行復制。在采收后通過RC 522 RFID讀寫器模塊對NFC原始標簽ID進行獲取,通過將農產品采收階段采集的基礎數據與之進行關聯,方便消費者受到商品后進行產源追溯[4]。
(2)NFC標簽識讀。NFC標簽識讀過程在支持NFC功能的手機上進行,通過調用安卓手機的NFC權限進行模塊訪問,讀取NFC貼紙上的信息[5]。
(3)區塊鏈建立。為了對農產品的信息進行公證的存儲和提供公眾的可驗證性,在NFC標簽的簽發階段對每個標簽的唯一ID進行區塊化的存儲[6]。使得每個NFC標簽都能從去中心化的存儲服務節點中進行驗證,從而降低偽造的可能。
本文對基于物聯網的寶雞農產品助推系統進行了設計開發,并通過各部分的介紹說明初步完成了系統的設計。通過使用NFC技術簡單地實現了對寶雞地區農產品的溯源體系建立。在農產品追源的實際應用中,也同時運用互聯網電子商務技術對農產品進行助推助銷,幫助農戶增收致富。從地區發展和國家食品安全政策的落實上也具有一定的助推作用,通過綠色無公害的特色農產品打造綠色寶雞的生態名牌。