🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。
- 代碼可以私聊博主獲取。🌹
- 贈送計算機畢業設計600個選題excel文件,幫助大學選題。
- 贈送開題報告模板,幫助書寫開題報告。
作者完整代碼目錄供你選擇:
- 《Springboot網站項目》400套
- 《ssm網站項目》800套
- 《小程序項目》300套
- 《App項目》500套
- 《python網站項目》600套
?感興趣大家可以點點關注收藏,后續更新更多項目資料。?
項目演示
?
隨著計算機技術的成熟,互聯網的建立,如今,PC平臺上有許多關于二手閑置交易方面的應用程序,但由于使用時間和地點上的限制,用戶在使用上存在著種種不方便,而開發一款基于微信小程序的二手閑置交易市場系統,能夠有效地解決這個問題。
本基于微信小程序的二手閑置交易市場系統是針對二手閑置交易而開發,采用微信開發者工具進行微信端開發,使用MYSQL數據庫進行系統數據的儲存,系統滿足用戶通過微信客戶端進行二手閑置交易的需求。本小程序是以微信為入口的,可以說是在自帶接近10億的流量人口。整個系統不僅操作簡單、便捷,而且節約用戶的時間及資源成本等,僅需通過一部手機和微信號即可滿足用戶們的需求。
論文首先闡述了基于微信小程序的二手閑置交易市場系統的開發背景,并對開發基于微信小程序的二手閑置交易市場系統所采用的相關技術進行了詳細的介紹,然后對此應用軟件進行了需求分析、設計,最后對系統進行測試、維護,保證系統的正常運行。
關鍵詞:微信小程序?;微信開發者工具;二手閑置交易;MYSQL數據庫
1.1研究背景
二十一世紀是一個集數字化,網絡化,信息化的,以網絡為核心的社會。隨著互聯網的發展,傳統生活變得更加方便快捷,許多事物都可以跟互聯網相連接,于是就提出了“互聯網+”[1]的概念,日常生活離不開計算機更離不開互聯網,例如生活中最平常的衣食住行,都有其相關的智能產品,所以科技改變生活,傳統的生活方式面對互聯網的新浪潮的沖擊,已經漸漸退出了歷史舞臺,相信未來的某一時刻,傳統的生活方式將進入全智能化的階段。
在信息技術迅速發展的今天,計算機技術已經遍及全球,使社會發生了巨大的變革,現今各類智能手機不斷更新,智能手機的普遍使用讓各種基于手機移動端的APP問世,其中,微信已是時下國內最火的聊天交流APP,備受人們青睞,近年來,微信發展規模越來越大,越來越多的人開始使用微信,目前智能手機系統的普及,人們手機上基本都有了微信,根據去年公布的一組數據中可知,微信去年最高用戶量達到10億多;而建立在微信平臺基礎上的小程序憑著它不用安裝、不占內存、使用便捷、用完即走等眾多優點[2],小程序借著微信平臺快速成長,也為各行業的發展帶來了極大的便利,這使得基于微信小程序的系統應運而生,為用戶提供便利。
基于以上微信的發展,結合目前用戶二手閑置交易方面的需求,開發了本基于微信小程序的二手閑置交易市場系統,滿足了不同用戶的功能需求,包括用戶、賣家和管理員,實現二手閑置交易的重要功能,提高二手閑置交易效率。
1.2設計原則
在開始開發項目之前,必須要先考慮項目的實用性、科學性,以及該項目是否能夠真正讓用戶受益并盡可能的發揮項目的作用。因此,在開發前,通過以下幾條原則對項目進行判斷:
(1)可行性原則。項目需要保證經濟可行性和技術可行性,這包括了項目在瀏覽端、服務端等方面上的經濟和技術上是可以達成的。
(2)適應性原則。項目要保證可維護性和可擴展性,這是每個非短期項目都需要考慮的,并且不論是維護還是擴展,都必須要建立在適應用戶的正常需求的基礎上。
(3)安全性及保密性原則。要充分保證用戶信息的安全性和保密性,不能因為開發上的疏忽,導致用戶的信息泄露。
(4)系統工程原則。為了確保項目的整體性,在項目調查、項目分析、項目設計、項目開發的過程中,都需遵從項目工程的方法和步驟逐步進行。
(5)統一規劃、分期實施、逐步完善原則。項目開發的過程中,要按照規劃、分期實施,特別是要注意在項目開發過程中要有條理,從點到面,一步步完善,不要貪圖進度,要循環漸進的對項目進行開發。
1.3論文組織結構
本基于微信小程序的二手閑置交易市場系統在開發技術的選擇上,使用WXML 、WXS、JS小程序編寫語言和MYSQL數據庫開發。本論文的組織結構如下:
第1章緒論。闡述論文工作的研究背景和設計原則。
第2章系統關鍵技術介紹。介紹構建基于微信小程序的二手閑置交易市場系統進的相關技術。
第3章系統分析。分析基于微信小程序的二手閑置交易市場系統的需求,包括系統性能分析、系統功能分析以及系統流程分析等。
第4章系統設計。根據需求分析對系統進行功能模塊劃分和數據庫設計,并構建系統結構圖以及數據庫E-R圖等。
第5章系統的實現。對系統主要功能模塊進行界面展示。
第6章系統測試。對系統進行測試工作,發現系統bug,進行修改,確保系統正常穩定的運行。
第7章結論。總結論文的主要工作,提出進一步完善基于微信小程序的二手閑置交易市場系統的目標和明確方向。
第2章 ?關鍵技術簡介
2.1 微信小程序
微信小程序,簡稱小程序,英文名Mini Program,是一種全新的連接用戶與服務的方式,可以快速訪問、快速傳播,并具有良好的使用體驗[12]。
小程序的主要開發語言是JavaScript,它與普通web的開發有很多相似之處。小程序和普通網頁開發并不是相同的東西,是有差異的。網頁開發的渲染線程和腳本線程是互斥的,而在小程序中,確實分開的,分別在不同的線程之中運行。網頁開發的工作者可以運用各種瀏覽器暴露出來的DOM API,進行DOM選中和操作,但小程序不行,它并沒有一個完整的瀏覽器對象,因此缺失DOM API和BOM API。這樣的差別使得前端開發中經常用到的一些庫是無法在小程序中運行的。另外,網頁開發的工作者在開發網頁時所要面對的環境是在各式各樣系統上運行的各式各樣的瀏覽器,,而小程序只,只需面對iOS和Android這兩道操作系統下的微信就足夠了。
小程序和傳統的APP相比,有著開發成本更低,獲客成本更低,開發周期更短,發展空間更大等的優點。不過,為了體現“用完即走”、“無需安裝”等理念,小程序的功能、性能還有大小都受到了制約,可以說是各有利弊。
2.2?微信開發者工具
為了能夠讓微信小程序的開發人員有根家優秀的開發環境,騰訊在原有的公眾號網頁調試工具的基礎上,推出了全新的微信web開發者工具。
微信web開發者工具具備編輯、調試、項目、編譯、關閉、后臺和緩存這七個選項卡,讓開發者能夠更方便的進行開發和調試,節省開發所耗費的時間。
2.3微信小程序API接口
微信小程序API接口是騰訊公司為了微信小程序和微信公眾號提供的接口文檔,里面包含了各種需要使用的接口技術[7],例如本項目用到的獲取微信用戶信息(wx.getUserInfo)、藍牙通訊傳輸功能、網絡請求(wx.request)、定位功能等,總的來說,小程序API是滿足一個程序開發的大部分接口。
2.4 WXML 、WXS、JS小程序編寫語言
WXML全稱是 WeiXin Markup Language,是微信標記語言,是微信小程序的標簽語言,結合小程序的基礎組件、事件系統,可以構建出頁面的結構。類似于HTML語言,但是他自身也擁有一定的特色。
WXSS(WeiXin Style Sheets)是微信樣式表,是微信小程序用于修飾標簽語言的樣式文件,WXSS 用來決定 WXML 的組件應該怎么顯示。為了適應廣大的前端開發者,WXSS 具有 CSS 大部分特性,同時為了更適合開發微信小程序,WXSS對CSS語言進行修改和擴充,引入全新尺寸單位rpx,但大體語法于CSS語言不分離。
JS是 JavaScript[4]語言的簡稱,微信小程序里面也可以叫做WXS,是一門腳本語言,通俗易懂,用于頁面交互的語言。
2.5?MYSQL數據庫
MySQL 是關系型數據庫管理系統的代表,它是屬于 Oracle 旗下產品,使用C語言和C++語言編寫的,使用了多種技術,由于它體積小,易使用,成本低,靈活性[2],該數據庫在中小企業比較受歡迎。MySQL的靈活性體現在非常多方面,可是適應高要求的環境,通過不同配置適應各種硬件,同時支持各種不同的數據。因為MySQL是其免費開源的,而且MySQL的功能已經足夠用對于學習和中小型企業來講,所以開發中小型網站都會選擇MySQL作為網站的數據庫。[5]
第3章 ?系統分析
3.1 可行性分析
需要使用大部分精力開發的基于微信小程序的二手閑置交易市場系統為了充分降低開發風險,特意在開發之前進行可行性分析這個驗證系統開發是否可行的步驟。本文就會從技術角度,經濟角度,還有操作角度等進行綜合闡述。
3.1.1技術可行性
本二手閑置交易市場系統采用Java技術,基于微信小程序,采用MYSQL數據庫進行開發的。
(1)Java提供了穩定的性能、優秀的升級性、更快速的開發、更簡便的管理、全新的語言以及服務。整個系統幫用戶做了大部分不重要的瑣碎的工作。
(2)基于微信小程序的系統的開發已發展日趨成熟。
(3)作為計算機專業的學生,對數據庫比較熟悉,掌握了MYSQL數據庫,建立這樣一個系統應該在能力范圍之內
綜上所述:基于微信小程序的二手閑置交易市場系統的開發技術具有很高可行性。
3.1.2 經濟可行性
該系統的開發工具使用的都是免費的開發工具,且內容較為簡單,一臺計算機便可以開發出這個系統,且后期的維護,修改等對本系統的改動,都可以只通過一臺計算機實現,因此開發該系統的成本在有計算機的情況下基本為0,所以本系統在經濟上是可行的。
3.1.3 操作可行性
本系統操作頁面簡潔明了,操作極其容易,用戶登陸后一眼便可看到自己所需要的信息,而管理員的操作也十分輕松便捷,只要操作人員具有一定的文字水平以及簡單的邏輯思維,就可以輕松操作本系統,因此本系統在操作上是可行的。
3.1.4時間可行性
從2020年11月份我們在學校就沒有課程了,同學們大部分選擇找工作實習了,我也是在其中。一邊找工作的同時,一邊忙著完成畢業設計工作。對于我本人來講,目前的情況是白天我要上班參加實習工作,只有晚上我才有時間完成論文編寫工作。論文答辯是在2021年5月份左右,將近半年時間來完成畢業設計,時間上還是很充分。
綜上可以看出,本基于微信小程序的二手閑置交易市場系統的開發在技術、經濟、操作以及時間四個方面都具有很高的可行性,開發本程序可行。
3.2 系統性能分析
隨著互聯網的發展,微信小程序越來越完善,現在的生活中充斥著微信小程序,由于小程序方便快捷,基于微信這個大平臺,小程序發展是高速的,吃飯可以通過小程序點餐,出去玩可以用小程序打車,因此二手閑置交易也可以使用小程序。系統性能需求如下:
(1)軟件功能清晰明了,盡量多用列表的展示簡化用戶操作,提升使用者體驗,減少下拉菜單這種降低體驗的操作。
(2)軟件的功能要盡量完整,也要全面。
(3)經常的在以后版本更新完善軟件,使得軟件保持一個新鮮度,也可以做一些活動來促進用戶使用軟件。
(4)減少軟件使用過程中出錯,做好優化,遵循開發邏輯,降低bug的產生率以提升用戶體驗。
3.3?系統功能分析
本基于微信小程序的二手閑置交易市場系統滿足了不同用戶的功能需求,包括用戶、賣家以及管理員,下面對這不同用戶的功能需求進行簡介。
(1)管理員功能分析
管理員可進行后臺進行管理,包含個人中心、用戶管理、賣家管理、商品分類管理、商品信息管理、商品購買管理、商品配送管理、訂單評價管理、用戶咨詢管理以及系統管理。
管理員用例圖如圖3.1所示。
圖 3.1?管理員用例圖
(2)賣家功能分析
賣家注冊登錄后主要功能模塊包括首頁、商品信息(增刪改查商品)、系統公告以及我的(商品信息、商品購買、商品配送、訂單評價、用戶咨詢和在線客服)。
賣家用例圖如圖3.2所示。
圖 3.2?賣家用例圖
(3)用戶功能分析
沒有賬號的用戶可進行注冊操作,注冊登錄后主要功能模塊包括首頁、商品信息(商品查詢收藏購買)、系統公告以及我的(商品信息、商品購買、商品配送、訂單評價、用戶咨詢、我的收藏管理以及在線客服)。
用戶用例圖如圖3.3所示。
3.4?系統流程分析
3.4.1注冊登錄流程
沒有賬號的賣家和用戶均可進行注冊,注冊后可進行登錄系統,注冊登錄流程圖如圖3.4所示。
圖3.4注冊登錄流程圖
3.4.2添加信息流程
管理員、用戶以及賣家均可添加信息,下面是添加信息的時候的流程圖,如圖3.5所示
3.5系統界面分析
用戶界面指的是用戶直接看到的圖形界面也稱為前端設計。用戶界面的好壞直接影響到用戶操作時的體驗、效率,愉快性,而且用戶界面設計不當還會導致無法很好的發揮出系統的性能。
1.界面元素
常見的用戶界面都會包括:整體頁面的主顏色,字體的大小,字體的顏色,整體頁面的布局,主要功能在頁面上的布局位置,重要的輸入界面和輸出界面,人機交互界面。用戶界面采用的主顏色,還有整體的布局的美觀和功能布局的位置是否符合人性的設計都會直接的影響到用戶對本系統軟件的認同度。
2.用戶角色
界面的設計必須建立在用戶的角度,只有把自己當作用戶思考人們的使用習慣和愛好的時候,才能開發出一個圍繞用戶的界面。通過調查用戶的操作習慣,并將收集而來的紛亂復雜信息,進行總結,抽象得出滿足用戶的用戶界面模型。
3.需求變化
人們的審美和習慣愛好,總是在不斷的改變著。故要根據不同用戶的喜好,操作習慣作不同的需求設計分析,作出更加符合的用戶口味的操作界面。從而得到用戶的認可。
4.界面原型
設計的前期通過快速的創建界面原型,通過同學的建議一點一點的改進用戶界面從快速的達到理想的效果。用戶界面的設計原則要滿足以下幾點:
(1)頁面簡潔,操作簡單。
(2)對于用戶而言,瀏覽信息比記憶信息更友好。
(3)從用戶的角度思考,才能讓用戶更好的接納。
(4)利用當今已經流行的頁面設計,讓用戶快速的學會操作。
5.安全性問題
安全性問題應該是人們最看重的。用戶界面上輸入的信息不會被別人竊取,還有若輸入的時候出現錯誤頁面必須能夠回退。
第4章 ?系統設計
4.1系統結構設計
本基于微信小程序的二手閑置交易市場系統主要實現了賣家功能模塊、用戶功能模塊和管理員功能模塊三大部分,系統結構圖如圖4-1所示。
圖4.1系統功能結構圖
4.2系統順序圖設計
4.2.1登錄模塊順序圖
登錄模塊主要滿足了管理員、賣家和用戶的權限登錄,登錄模塊的順序圖如圖 4.2?所示。
圖4.2登錄順序圖
4.2.2添加信息模塊順序圖
管理員、用戶以及賣家登錄后均可進行信息的添加操作,添加信息順序圖如圖4.3所示
圖4.3添加信息順序圖
4.3系統數據庫設計
4.3.1 數據庫E-R圖設計
系統E-R圖就是系統的實體關系圖,它是用來描述某一組織(單位)的概念模型,提供了表示實體、屬性和聯系的方法。構成E-R圖的基本要素是實體、屬性和關系。實體是指客觀存在并可相互區分的事特;屬性指指實體所具有的每一個特性。根據數據庫中的幾個表分別繪制數據庫的實體圖。以下給出本系統中比較重要的實體E-R圖。
(1)商品訂單信息實體E- R圖,如圖4.4所示
圖4.4 商品訂單信息實體屬性圖
(2)商品類型信息實體E- R圖,如圖4.5所示
圖4.5 商品類型信息實體屬性圖
(3)管理員信息實體E- R圖,如圖4.6所示
圖4.6 ?管理員信息實體屬性圖
(4)用戶信息實體E- R圖,如圖4.7所示
圖4.7 用戶信息實體屬性圖
(5)賣家信息實體E- R圖,如圖4.8所示
圖4.8 賣家信息實體屬性圖
(6)商品信息實體E- R圖,如圖4.9所示
圖4.9 商品信息實體屬性圖
4.3.2 數據庫表設計
本基于微信小程序的二手閑置交易市場系統在開發過程中使用MySQL數據庫系統進行系統數據的儲存,以下是本系統的主要數據庫表信息。
表4.1 ?shangpindingdan商品訂單信息表
序號 | 字段 | 描述 | 類型和長度 | 主鍵 | 是否可空 |
1 | id | 編號 | bigint(20) | 是 | 不允許 |
2 | addtime | 創建時間 | timestamp | 否 | 允許 |
3 | maijiahao | 賣家號 | varchar(200) | 否 | 允許 |
4 | maijiaming | 買家號 | varchar(200) | 否 | 允許 |
5 | `shangpinbianhao | 商品編號 | varchar(200) | 否 | 允許 |
6 | shangpinmingcheng | 商品名稱 | varchar(200) | 否 | 允許 |
7 | shangpinleixing | 商品類型 | varchar(200) | 否 | 允許 |
8 | shangpintupian` | 商品圖片 | varchar(200) | 否 | 允許 |
9 | shuliang | 數量 | int(11) | 否 | 允許 |
10 | `shangpinjiage | 商品價格 | int(11) | 否 | 允許 |
11 | zongjine | 總金額 | int(11) | 否 | 允許 |
12 | `zhanghao | 賬號 | varchar(200) | 否 | 允許 |
13 | xingming | 姓名 | varchar(200) | 否 | 允許 |
14 | `shouji | 手機 | varchar(200) | 否 | 允許 |
15 | dizhi | 地址 | varchar(200) | 否 | 允許 |
16 | goumaishijian | 購買時間 | datetime | 否 | 允許 |
17 | beizhu | 備注 | varchar(200) | 否 | 允許 |
18 | sfsh | 是否審核 | varchar(200) | 否 | 允許 |
19 | shhf | 審核回復 | longtext | 否 | 允許 |
20 | ispay | 是否支付 | varchar(200) | 否 | 允許 |
21 | userid | 用戶編號 | bigint(20) | 否 | 允許 |
表4.2 ?shangpinleixing商品類型信息表
序號 | 字段 | 描述 | 類型和長度 | 主鍵 | 是否可空 |
1 | id | 編號 | bigint(20) | 是 | 不允許 |
2 | addtime | 創建時間 | timestamp | 否 | 允許 |
3 | fenlei | 分類 | varchar(200) | 否 | 允許 |
表4.3 ??users管理員信息表
序號 | 字段 | 描述 | 類型和長度 | 主鍵 | 是否可空 |
1 | id | 編號 | bigint(20) | 是 | 不允許 |
2 | username | 用戶名 | varchar(100) | 否 | 允許 |
3 | password | 密碼 | varchar(100) | 否 | 允許 |
4 | role | 角色 | varchar(100) | 否 | 允許 |
5 | addtime | 添加時間 | timestamp | 否 | 允許 |
表4.4???yonghu用戶信息表
序號 | 字段 | 描述 | 類型和長度 | 主鍵 | 是否可空 |
1 | id | 編號 | bigint(20) | 是 | 不允許 |
2 | addtime | 創建時間 | timestamp | 否 | 允許 |
3 | zhanghao | 賬號 | varchar(200) | 否 | 允許 |
4 | mima | 密碼 | varchar(200) | 否 | 允許 |
5 | xingming | 姓名 | varchar(200) | 否 | 允許 |
6 | xingbie | 性別 | varchar(200) | 否 | 允許 |
7 | `nianling | 年齡 | int(11) | 否 | 允許 |
8 | shouji` | 電話 | varchar(200) | 否 | 允許 |
9 | youxiang` | 郵箱 | varchar(200) | 否 | 允許 |
10 | `dizhi | 地址 | varchar(200) | 否 | 允許 |
11 | `zhaopian | 照片 | varchar(200) | 否 | 允許 |
表4.5??maijia賣家信息表
序號 | 字段 | 描述 | 類型和長度 | 主鍵 | 是否可空 |
1 | id | 編號 | bigint(20) | 是 | 不允許 |
2 | addtime | 創建時間 | timestamp | 否 | 允許 |
3 | maijiahao | 賣家號 | varchar(200) | 否 | 允許 |
4 | mima | 密碼 | varchar(200) | 否 | 允許 |
5 | maijiaming | 賣家姓名 | varchar(200) | 否 | 允許 |
6 | xingbie | 性別 | varchar(200) | 否 | 允許 |
7 | `nianling | 年齡 | varchar(200) | 否 | 允許 |
8 | `maijiashouji | 賣家手機 | varchar(200) | 否 | 允許 |
9 | youxiang | 郵箱 | varchar(200) | 否 | 允許 |
10 | shenfenzheng | 身份證 | varchar(200) | 否 | 允許 |
11 | zhaopian | 照片 | varchar(200) | 否 | 允許 |
12 | `thumbsupnum | 贊數 | int(11) | 否 | 允許 |
13 | crazilynum | 踩數 | int(11) | 否 | 允許 |
14 | clicktime | 最近點擊時間 | datetime | 否 | 允許 |
15 | clicknum | 點擊次數 | int(11) | 否 | 允許 |
表4.6???shangpinxinxi商品信息表
序號 | 字段 | 描述 | 類型和長度 | 主鍵 | 是否可空 |
1 | id | 編號 | bigint(20) | 是 | 不允許 |
2 | addtime | 創建時間 | timestamp | 否 | 允許 |
3 | maijiahao | 賣家號 | varchar(200) | 否 | 允許 |
4 | maijiaming | 賣家名 | varchar(200) | 否 | 允許 |
5 | shangpinbianhao | 商品編號 | varchar(200) | 否 | 允許 |
6 | shangpinmingcheng` | 商品名稱 | varchar(200) | 否 | 允許 |
7 | shangpinleixing | 商品類型 | varchar(200) | 否 | 允許 |
8 | shangpintupian | 商品圖片 | varchar(200) | 否 | 允許 |
9 | kucun | 庫存 | varchar(200) | 否 | 允許 |
10 | shangpinjiage | 商品價格 | int(11) | 否 | 允許 |
11 | shangpinxiangqing | 商品詳情 | longtext | 否 | 允許 |
12 | sfsh` | 是否審核 | varchar(200) | 否 | 允許 |
13 | shhf | 審核回復 | longtext | 否 | 允許 |
14 | thumbsupnum` | 贊數 | int(11) | 否 | 允許 |
15 | crazilynum | 踩數 | int(11) | 否 | 允許 |
16 | `clicktime | 最近點擊時間 | datetime | 否 | 允許 |
17 | clicknum | 點擊次數 | int(11) | 否 | 允許 |
18 | userid` | 用戶編號 | bigint(20) | 否 | 允許 |
第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.1.4系統公告界面
賣家和用戶登錄后均可查看系統公告信息,系統公告界面展示如圖5.4所示。
圖5.4?系統公告界面
5.1.5商品詳情界面
用戶可選擇商品查看詳情,并可進行咨詢和購買,商品詳情界面展示如圖5.5所示。
圖5.5 商品詳情界面
5.1.6發布商品界面
賣家登錄后可發布商品信息,發布商品界面展示如圖5.6所示。
圖5.6 閱讀心得界面
5.2管理員功能模塊的實現
5.2.1管理員登錄界面
管理員要想進入系統后臺對系統進行管理操作,必須登錄系統后臺,管理員登錄界面展示如圖5.7所示。
5.2.2用戶管理界面
管理員登錄后可添加、修改和刪除用戶信息,用戶管理界面如圖5.8所示。
圖5.8 用戶管理界面
5.2.3賣家管理界面
管理員在賣家管理界面可查看所有賣家信息,對已有賣家信息可進行編輯和刪除操作,同時也可添加賣家信息,賣家管理界面如圖5.9所示。
圖5.9 ?賣家管理界面
5.2.4商品管理界面
管理員可管理商品信息,對已有商品信息可進行編輯和刪除,商品管理界面展示如圖5.10所示。
圖5.10 商品管理界面
5.2.5商品購買管理界面
管理員可進入商品購買管理界面查看所有購買信息,商品購買管理界面展示如圖5.11所示。
圖5.11 商品購買管理界面
第6章 系統測試
6.1 軟件測試
軟件測試使用人工或是軟件自動測試,為的是測試軟件在不同的情況下和不同的操作下是否會出現預期之外的顯示或數據。在每個項目上市之前,都會進行軟件測試。從來不會出現開發人員將開發流程結束之后就完工放假的情況,這是對軟件所付出的時間金錢精力以及對開發人員自身的不負責任。
在現在的互聯網行業中,測試更是成為了一種常見、關鍵的崗位。軟件開發人員和測試在日常工作中更是交流頻繁。在很多的情況下,兩者的業績和工作效率都是息息相關的。如果測試人員負責任且工作效率高的話,那么在開發途中就能發現已經出現的或者是隱藏的bug和邏輯錯誤。那么就不至于在開發流程進行到中后期出現嚴重bug導致整個開發流程推倒重來的情況。測試人員就像是醫生,優秀的測試人員印證了一句話“優秀的醫生總是在疾病還隱藏在身體中就將疾病消滅,所以他不會治療絕癥。”
在學習軟件工程這門課程的時候,其中有對與軟件測試的介紹,重點是黑盒和白盒測試。在此次測試中主要使用黑盒測試的手法,測試項目是否完成了符合預期的功能。
6.2?測試的重要性
在最初,所謂的軟件測試都是在項目要運行之前,進行測試,保證質量,避免在用戶心中留下糟糕的印象。而隨著技術的發展,這些年,計算機界中開始向一種新的觀念傾斜,那就是認為項目在每一個階段的生命周期都應該進行測試,盡可能的提早發現問題,避免到最后問題堆積,導致牽引出一些列的大問題。
事實上,要讓項目沒有半點錯誤是不可能的,不論我們是使用新型的開發方法,先進的編程語言…等等的方法,項目終究還是會出現錯誤的,我們只能精良的去降低錯誤的概率,減少錯誤出現的次數,最后在通過測試,一步一步的將隱藏在項目中的錯局抽出,并解決它,讓項目更趨近于完美。
測試聽起來似乎并不困難,但在實踐之后,卻會發現,測試是一件繁瑣且困難的事情,并且,繁瑣乏味的測試并不會給測試人員成就感和興趣,這無疑大大的打擊了他們的積極性,降低了測試的工作效率。還有一種情況,那就是如果測試人員是開發人員,很有可能就會出現一種情況——當局者迷,旁觀者清。作為開發者的一員,我清楚的明白,對于自己開發的項目,自己總會有一種迷之自信,這種自信會阻礙開發者在測試中發現隱藏在項目之中的錯誤,這無疑是很致命的。因此,如果要做好測試工作,我們就需要耐得下心來,不能因為繁瑣枯燥的而不耐煩,同時,要以旁觀者的角度來對自己的項目進行測試,不能對自己開發的項目抱有迷之自信。
6.3?測試方法
為了使系統更完善,我們通常會采用測試系統常用的測試方法,主要有兩種:功能測試和結構測試。
功能測試,也可以稱作是黑盒測試,在我們已經了解系統有的功能的情況下,通過整個軟件或是軟件的某項功能來嚴格測試系統功能是不是能夠正常運行。測試者不需要審查內部源代碼,也不用了解源代碼的原理及是如何工作,而是輸入各種可能來驗證功能。
白盒測試則完全不同,黑盒測試是繞過了程序的源代碼,直接在系統前端上進行各種可能的測試,那么白盒測試就是專門針對源代碼及其邏輯所進行的一種檢測,從代碼中發現在算法、語法、溢出等方面可能出現的缺陷或錯誤。
6.4測試分析
經過對上述的測試結果分析,本基于微信小程序的二手閑置交易市場系統滿足用戶的要求和需求。系統界面友好、功能齊全,系統運行后很穩定,可靠,也具有二手閑置交易的重要的功能。所有基本功能齊全,操作簡單,系統運行性能良好,是一個值得推廣的大眾化的二手閑置交易軟件。
第7章 總結
在這次畢業設計中,我發現在生活和工作中,計算機應用隱藏著巨大的潛力。在學校的四年中,我全力學習計算機網絡專業知識和本文使用,我相信所有困難終都會被解決的。
本次開發的基于微信小程序的二手閑置交易市場系統已經接近尾聲階段了,在這次獨立完成畢業設計的期間,我自己體會到了很多的東西,另外我很想說的就是獨立開發軟件真的很能讓人在開發期間得到鍛煉,不管是需求分析,還是系統的設計以及系統功能詳細實現還有最后的測試工作,每一步都要小心翼翼的完成,一步一步來,不然任何環節出現了差錯,返工起來也很麻煩,開發系統過程中,遇到了很多的難題,比如基于微信小程序的二手閑置交易市場系統需要具有什么樣的功能,這個我還是思考了很久,后來同學給我提示了一下,參考別人做好的系統,看看人家設計了什么功能,自己就多多參考下,后來這個問題就很好解決了,最難的就是系統編碼了,我這個人本來就比較粗心,編碼出現很多不該出現的錯誤,不該打空格也不小心鍵盤空格鍵多敲了兩下,整得自己老是程序運行出錯,找了好久都沒有解決,后來無奈找到室友幫忙看看,慢慢檢查終于找到問題了,編碼過程真的很心塞。還好東拼西湊總算完成了功能要求了。系統整體界面雖然不是很好看,但起碼不花哨,用戶使用起來整體感覺就是簡潔,功能體驗雖然有點啰嗦,但是需要的功能都已經具備了。
自己的身份目前還是學生,開發程序肯定是不會考慮周全,程序完成開發后也經過了一系列測試,整體來說還是沒有發現明顯的操作邏輯錯誤,自己在畢設制作過程中不僅知識有所增加,獨立學習的能力也有所提高了,更重要的就是遇到問題向周邊同學尋求幫助,這個是很有必要的。總的來說畢業設計的圓滿完成,我真的覺得很自豪。
設計基于微信小程序的二手閑置交易市場系統的過程是對我學習能力與學業水平的一次考驗。通過這次的畢業設計使我對程序的編寫有了深刻的認識,我的程序編輯能力也得到了很大的提升。雖然在系統開發過程中有很多我無法獨立解決的難題,但是在老師的悉心指導,以及經過自己持之以恒的編寫與調試程序下,程序的開發最后得到了完滿的結果。
我的畢業論文(設計)撰寫工作自始至終都是在指導老師全面、具體的指導下進行的。在這里我要對指導老師表示由衷的感謝,從系統的選題,到功能體系的設計,指導老師給出了許多建設性的意見,當設計碰到問題時,他總是不辭辛勞研究模塊,代碼,提出有效的解決建議。指導老師給予了我悉心的關懷與指導,尤其是他那種一絲不茍、嚴謹求實、兢兢業業的教學和工作態度將使我終身受益。設計期間,雖然辛苦,但很幸福。經過幾個月以來的學習與設計我學到了很多知識,它讓我更加懂得了一份耕耘,一份收獲的深刻道理,更學會了與身邊同學進行團隊合作,共同進步。通過此次畢業設計,也讓我明白了:首先,在工作學習過程中,對所要做的事情要先收集各種相關資料,對其有大致的了解;其次,考慮問題不能只考慮單方面,要全面分析、認真思考;最后,做事情要合理安排。
感謝我的指導教師對我的關心、指導和教誨!?感謝我的父母把我培養這么大,供我上大學,讓我有機會學習這么多。感謝陪伴我四年一起成長學習的同學們,同學們在學習和生活上對我的幫助和照顧!最后,最主要的是要感謝各位老師對我的教育,在設計途中,多次的崩潰,多次的手足無措,很多次的想要放棄,都是老師對我不斷的鼓勵,我才堅持下來,最終完成了畢業設計。感謝大家的支持,使我對今后將要面對的社會,工作,生活,信心百倍。再次表示感謝,謝謝!
參考文獻
[1]中國微信發展的量化研究[J].匡文波.國際新聞界. 2014(05)
[2]微信平臺上的品牌營銷策劃研究[J].李鑫.中小企業管理與科技(上旬刊). 2014(01)
[3]論微信公眾平臺在教輔出版中的應用[J].楊寧.編輯之友. 2014(01)
[4]微信小程序開發[J]. 王婷婷.信息技術與信息化.2018(12)
[5]基于微信小程序的高校停車位管理系統[J]. 趙妍,趙靖,王瀅.科學技術創新.2019(22)
[6]微信小程序:機遇與挑戰并存[J]. 匡文波.新聞論壇.2017(02)
[7]微信小程序入口在哪?有什么用?[J]. 張小龍.計算機與網絡.2017(04)
[8]微信小程序如何使用[J]. 意達.新天地.2017(02)
[9]微信“小程序”開發的系統實現及前景分析[J]. 劉玉佳.信息通信.2017(01)
[10]微信小程序會殺死APP嗎[J]. 周平平.計算機與網絡.2017(01)
[11]MySQL數據庫安全研究[J]. 蔣睿.電腦知識與技術.2020(09)
[12]微信小程序開發圖解案例教程[M].人民郵電出版社 , 劉剛, 2017
[13]實戰微信小程序[M]. 電子工業出版社 , 榮蓉, 2017
[14]微信小程序開發快速入門[M]. 電子工業出版社 ,黃曦, 2017
[15]基于微信小程序的移動學習平臺的設計與實現[J]. 牛琳,吳琳.軟件工程.2018(09)
核心代碼展示
/*** 公告通知* 后端接口* @author * @email * @date 2021-03-09 11:33:59*/
@RestController
@RequestMapping("/news")
public class NewsController {@Autowiredprivate NewsService newsService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NewsEntity news){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); return R.ok().put("data", newsService.selectListView(ew));}/*** 查詢*/@RequestMapping("/query")public R query(NewsEntity news){EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); NewsView newsView = newsService.selectView(ew);return R.ok("查詢公告通知成功").put("data", newsView);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 前端詳情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){newsService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);return R.ok().put("count", count);}}