摘 ?要
計算機網絡發展到現在已經好幾十年了,在理論上面已經有了很豐富的基礎,并且在現實生活中也到處都在使用,可以說,經過幾十年的發展,互聯網技術已經把地域信息的隔閡給消除了,讓整個世界都可以即時通話和聯系,極大的方便了人們的生活。所以說,農產品直賣平臺用計算機技術來進行設計,不僅在管理方面更加的系統化,操作性強,最重要的是關于數據的保存和使用都能節約大量的時間,該系統非常的好用。
農產品直賣平臺管理數據的工具是MySQL,編碼的語言是Java,運用的框架是Spring Boot框架。該系統可以實現商家信用類型管理,農產品信息管理,農產品評價管理,商家管理,農產品訂單管理,公告信息管理,用戶管理等功能。
農產品直賣平臺不僅能讓操作人員使用更加地方便,并且設計的也很合理,能有效的避免誤操作,讓數據在錄入的環節就符合設計需要,極大的規避了源頭性的輸入誤差,順利的讓數據變得更加可控并且可靠,讓出錯的幾率降到最低。
關鍵詞:農產品直賣平臺;農產品;評價;訂單
4?系統設計
系統在設計的過程中,必然要遵循一定的原則才可以,胡亂設計是不可取的。首先用戶在使用過程中,能夠直觀感受到功能操作的便利性,符合正常思維邏輯的操作,這才是系統好用的一個開端,給使用者第一印象就是這個系統設計的相當不錯。
4.1 系統設計原則
系統遵循設計原則進行開發,會有很多可以預料到的好處,只要遵循了設計原則,那么開發出來的系統必然是有質量保證的。
首先第一條原則就是安全性原則:程序必須設定角色管理,不同的角色有不同的功能模塊,不同的角色登錄都需要輸入相對應的賬號和密碼,否則不允許進行操作相對應的權限。每個用戶登錄只能修改自己的密碼,不需要對別的賬號進行密碼或者其他資料的修改,否則就違背了安全性原則的設定。
其次第二條原則就是易用性原則:符合安全性只是功能的符合,不代表操作就符合,所以要設定易用性原則。易用性原則就是規定程序符合操作流程,正常人的思維定向為基礎,在不違背程序運行邏輯定義的情況下,必須使用簡單,操作規范,讓每個用戶使用起來都能看到頁面,就能感知功能模塊的作用,短時間的就能使用程序,達到易用效果。
再次第三條原則就是實用性原則:實用性代表著花里胡哨的功能必須拋棄,盡量符合數據處理的簡潔性,不僅需要這樣進行設定,還需要有預知性,系統后期可能會出現的功能模塊盡量要解耦,與程序設定要模塊化體現,這樣才能達到擴展性。
第四條原則就是準確性原則:準確性原則的唯一定義就是準確,包含數據輸入格式的準確,數據處理的準確,以及數據存儲的準確。程序里面關于數據準確才有存在的意義,如果一堆不相干的數據存在是沒有任何用處的,甚至會產生各種問題,所以必須要保證數據的準確性。
第五條原則是易維護原則:易維護代表著程序運行必須是可控的狀態,如果不可控出現各種問題,那么所有的工作都是空談。程序開發中對于各種程序判定異常,必須有統一的處理模式,異常是程序開發中不可避免的,但是可以對出現的異常進行拋出,有助于程序異常處理的復盤,只要每個異常都能定位準確,那么代表程序設計是趨于完美的,維護起來會更加的方便,只要有助于程序維護的都必須給予支持。
4.2 功能模塊設計
對管理員具體功能的設計結果將以圖4.1所示的管理員功能結構圖來進行體現。管理員對于農產品直賣平臺操作的功能包括管理農產品基本信息,管理農產品的相關評價信息,以及管理農產品的訂單信息,管理商家信用信息以及商家信息,管理用戶和公告等。
圖4.1 管理員功能結構圖
對商家具體功能的設計結果將以圖4.2所示的商家功能結構圖來進行體現。商家對于農產品直賣平臺操作的功能包括管理農產品基本信息,農產品庫存信息,查看農產品評價內容,對評價農產品的用戶進行回復,管理農產品銷售訂單,查看公告內容等。
圖4.2 商家功能結構圖
對用戶具體功能的設計結果將以圖4.3所示的用戶功能結構圖來進行體現。用戶對于農產品直賣平臺操作的功能包括在前臺購買農產品,管理收貨地址,管理購買的農產品信息,查看商家,通過購物車對需要購買的農產品進行統一下單等。
圖4.3 用戶功能結構圖
4.3 數據庫設計
用戶通過系統的功能操作來進行數據交互,包括數據的添加,數據的更新,數據的刪除,數據的查詢等基本功能操作,表面上雖然是操作系統界面提供的功能,但是實際上系統的這些數據是在數據庫當中進行訪問與操作的。目前市場上可供選擇的存儲數據的數據庫有很多,除了簡單版的Access之外,還有SQL?Server,DB2,Informix,MySQL等關系型數據庫可供選擇,由于關系型數據庫具有固定的表結構,以及對數據一致性要求比較強,所以相比沒有固定表結構以及具有靈活的數據格式的非關系型數據庫而言,在程序配套數據庫的選擇中,關系型數據庫的使用率更高。本系統選擇MySQL來存放數據,其相關理論以及技術在經過了很長時間的發展之后,變得非常成熟,各大網絡平臺都公開分享其開發源碼,而且其對計算機的配置要求很低,不需要過多內存進行安裝,很符合本系統對于數據庫的選擇要求。
4.3.1?數據庫E-R圖
本節需要對系統中存放在數據庫中的數據進行充分分析,對數據的實體,實體特征,聯系等進行確定,然后通過概念模型的表示方法即E-R圖進行表達,在E-R圖繪制工具中,選擇橢圓,菱形框,矩形等形狀表達實體屬性,實體間聯系,實體這些信息,使用實線段將這些形狀進行連接即可。初步完成E-R圖之后,需要進行檢查,及時進行有誤數據的更改,刪除實體間存在的冗余聯系,刪除E-R圖中冗余的數據,最終要展示一個內容準確的E-R圖。
(1)農產品包括的屬性有農產品照片,農產品庫存,農產品原價等。其屬性圖如下。
圖4.4 農產品實體屬性圖
(2)農產品訂單包括的屬性有購買數量,訂單類型,支付類型等。其屬性圖如下。
圖4.5?農產品訂單實體屬性圖
(3)商家包括的屬性有商家名稱,聯系方式,郵箱等。其屬性圖如下。
圖4.6?商家實體屬性圖
(4)用戶包括的屬性有用戶頭像,性別,電子郵箱等。其屬性圖如下。
(5)設計的各實體間關系E-R圖如下。
圖4.8 實體間關系E-R圖
4.3.2 數據庫表結構
在指定的數據庫里面對數據表進行創建命名,然后設計各個數據表的存儲結構,需要對該數據庫的操作非常熟悉,并且還需要學習并掌握一定的數據表設計方面的知識,比如數據命名,作為系統的開發人員,為了避免程序運行產生亂碼現象以及為了確保系統的正常運行,在對數據表進行命名時,一般都是采用英文名稱,同時在對數據表的字段進行編輯時,也是采用英文的方式進行,為了方便今后對數據表的設計內容進行更改或查看,對一些比較重要的字段都會進行中文備注,或者是使用中文進行字段描述。設計期間,也需要對各個字段選擇合適的數據類型以及設置匹配的取值范圍,當一張數據表設計完成之后,還要對該表的主鍵進行標注,就是為了確保該數據表的唯一性與獨立性。
表4.1 收貨地址表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(20) | 否 |
yonghu_id | 創建用戶 | int(20) | 否 |
address_name | 收貨人 | varchar(200) | 否 |
address_phone | 電話 | varchar(200) | 否 |
address_dizhi | 地址 | varchar(200) | 否 |
isdefault_types | 是否默認地址 | int(11) | 否 |
insert_time | 添加時間 | timestamp | 否 |
update_time | 修改時間 | timestamp | 否 |
create_time | 創建時間 | timestamp | 否 |
表4.2 購物車表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
yonghu_id | 所屬用戶 | int(11) | 是 |
nongchanpin_id | 農產品 | int(11) | 是 |
buy_number | 購買數量 | int(11) | 是 |
create_time | 添加時間 | timestamp | 是 |
update_time | 更新時間 | timestamp | 是 |
insert_time | 創建時間 | timestamp | 是 |
表4.3 公告信息表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
gonggao_name | 公告名稱 | varchar(200) | 是 |
gonggao_photo | 公告圖片 | varchar(200) | 是 |
gonggao_types | 公告類型 | int(11) | 否 |
insert_time | 公告發布時間 | timestamp | 是 |
gonggao_content | 公告詳情 | text | 是 |
create_time | 創建時間 | timestamp | 是 |
表4.4 農產品表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
shangjia_id | 商家 | int(11) | 是 |
nongchanpin_name | 農產品名稱 | varchar(200) | 是 |
nongchanpin_photo | 農產品照片 | varchar(200) | 是 |
nongchanpin_types | 農產品類型 | int(11) | 是 |
nongchanpin_kucun_number | 農產品庫存 | int(11) | 是 |
nongchanpin_old_money | 農產品原價 | decimal(10,2) | 是 |
nongchanpin_new_money | 現價 | decimal(10,2) | 是 |
nongchanpin_clicknum | 點擊次數 | int(11) | 是 |
nongchanpin_content | 農產品介紹 | text | 是 |
shangxia_types | 是否上架 | int(11) | 是 |
nongchanpin_delete | 邏輯刪除 | int(11) | 是 |
create_time | 創建時間 | timestamp | 是 |
表4.5 農產品收藏表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
nongchanpin_id | 農產品 | int(11) | 是 |
yonghu_id | 用戶 | int(11) | 是 |
nongchanpin_collection_types | 類型 | int(11) | 是 |
insert_time | 收藏時間 | timestamp | 是 |
create_time | 創建時間 | timestamp | 是 |
表4.6 農產品評價表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
nongchanpin_id | 農產品 | int(11) | 是 |
yonghu_id | 用戶 | int(11) | 是 |
nongchanpin_commentback_text | 評價內容 | text | 是 |
insert_time | 評價時間 | timestamp | 是 |
reply_text | 回復內容 | text | 是 |
update_time | 回復時間 | timestamp | 是 |
create_time | 創建時間 | timestamp | 是 |
表4.7 農產品訂單表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
nongchanpin_order_uuid_number | 訂單號 | varchar(200) | 是 |
address_id | 收獲地址 | int(11) | 是 |
nongchanpin_id | 農產品 | int(11) | 是 |
yonghu_id | 用戶 | int(11) | 是 |
buy_number | 購買數量 | int(11) | 是 |
nongchanpin_order_true_price | 實付價格 | decimal(10,2) | 是 |
nongchanpin_order_courier_name | 快遞公司 | varchar(200) | 是 |
nongchanpin_order_courier_number | 訂單快遞單號 | varchar(200) | 是 |
nongchanpin_order_types | 訂單類型 | int(11) | 是 |
nongchanpin_order_payment_types | 支付類型 | int(11) | 是 |
insert_time | 訂單創建時間 | timestamp | 是 |
create_time | 創建時間 | timestamp | 是 |
表4.8 商家表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
username | 賬戶 | varchar(200) | 是 |
password | 密碼 | varchar(200) | 是 |
shangjia_name | 商家名稱 | varchar(200) | 是 |
shangjia_phone | 聯系方式 | varchar(200) | 是 |
shangjia_email | 郵箱 | varchar(200) | 是 |
shangjia_photo | 營業執照展示 | varchar(200) | 是 |
shangjia_xingji_types | 商家信用類型 | int(11) | 是 |
new_money | 現有余額 | decimal(10,2) | 是 |
shangjia_content | 商家介紹 | text | 是 |
shangjia_delete | 邏輯刪除 | int(11) | 是 |
create_time | 創建時間 | timestamp | 是 |
表4.9 管理員表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | bigint(20) | 否 |
username | 用戶名 | varchar(100) | 否 |
password | 密碼 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增時間 | timestamp | 否 |
表4.10 用戶表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
username | 賬戶 | varchar(200) | 是 |
password | 密碼 | varchar(200) | 是 |
yonghu_name | 用戶姓名 | varchar(200) | 是 |
yonghu_phone | 用戶手機號 | varchar(200) | 是 |
yonghu_id_number | 用戶身份證號 | varchar(200) | 是 |
yonghu_photo | 用戶頭像 | varchar(200) | 是 |
sex_types | 性別 | int(11) | 是 |
yonghu_email | 電子郵箱 | varchar(200) | 是 |
new_money | 余額 | decimal(10,2) | 是 |
create_time | 創建時間 | timestamp | 是 |
5 系統實現
下面主要是通過功能實現界面截圖的形式,并且運用文字來描述功能實現界面的內容。
5.1 管理員功能實現
5.1.1 商家管理
該功能主要用于實現對商家基本信息的管理,商家管理界面的運行效果見圖5.1。在此界面,管理員根據商家名稱查詢商家,可以修改,刪除商家資料。商家資料包括商家名稱,聯系方式,商家信用類型,營業執照等信息。
圖5.1 商家管理界面
5.1.2 公告信息管理
該功能主要用于實現對公告信息基本信息的管理,公告信息管理界面的運行效果見圖5.2。在此界面,管理員不僅需要新增公告內容,還需要對以前發布的公告信息進行維護,主要包括對有錯誤信息的公告內容進行修改以及刪除需要刪除的公告等。
圖5.2?公告信息管理界面
5.1.3 商家信用管理
該功能主要用于實現對商家信用基本信息的管理,商家信用管理界面的運行效果見圖5.3。在此界面,管理員新增商家信用類型名稱,以及對登記錯誤的商家信用類型名稱進行更改,對于需要刪除的商家信用信息,也能使用刪除功能直接刪除。
圖5.3?商家信用管理界面
5.2 商家功能實現
5.2.1 農產品管理
該功能主要用于實現對農產品基本信息的管理,農產品管理界面的運行效果見圖5.4。在此界面,商家對農產品的照片進行上傳,登記農產品的原價,現價,登記農產品名稱以及農產品庫存信息等,對于農產品的基礎信息,商家可以修改,刪除,對于農產品的庫存信息,商家可以增加庫存,可以減少農產品庫存等。如果商家不需要再銷售某種農產品,商家則可以下架農產品。
圖5.4?農產品管理界面
5.2.2 農產品評價管理
該功能主要用于實現對農產品評價基本信息的管理,農產品評價管理界面的運行效果見圖5.5。在此界面,商家回復評價農產品的用戶,查看用戶評價農產品的內容。
圖5.5?農產品評價管理界面
5.2.3 農產品訂單管理
該功能主要用于實現對農產品訂單基本信息的管理,農產品訂單管理界面的運行效果見圖5.6。在此界面,商家可以根據農產品名稱,農產品類型以及用戶姓名等條件來實現對農產品訂單的查詢操作,同時可以查看農產品訂單詳情。
圖5.6 農產品訂單管理界面
5.3 用戶功能實現
5.3.1 農產品信息
農產品信息界面的運行效果見圖5.7。在此界面,用戶可以查看農產品原價以及現價信息,查看農產品所屬商家信息,用戶可以查看農產品信息界面下方展示的農產品評論信息,當用戶決定購買農產品時,可以直接通過購買功能快速下單。
圖5.7?農產品信息界面
5.3.2 確認下單
確認下單界面的運行效果見圖5.8。在此界面,用戶檢查收貨地址信息是否正確,檢查購買的農產品的信息是否正確,查看總價以及實際支付價格,最后支付。
圖5.8?確認下單界面
5.3.3 農產品訂單
農產品訂單界面的運行效果見圖5.9。在此界面,用戶查看所有的農產品訂單信息,包括已評價,已發貨等農產品訂單信息,用戶根據個人需要對農產品訂單進行相應操作。
圖5.9?農產品訂單界面
5.3.4 購物車
購物車界面的運行效果見圖5.10。在此界面,用戶可以把需要購買的農產品都放入購物車保存,然后統一下單支付購買的農產品,這樣既方便又節省時間。
圖5.10?購物車界面