張建峰,陳瓊鶯,禹謝華(福建師范大學閩南科技學院,福建 泉州 362332)
便捷式SM系統(tǒng)的設計與開發(fā)
張建峰,陳瓊鶯,禹謝華
(福建師范大學閩南科技學院,福建 泉州 362332)
摘 要:隨著現(xiàn)階段各類中小型商鋪對商品管理需求的日益增多,設計和實現(xiàn)便捷式SM(salesystem management)系統(tǒng)顯得尤為重要。本系統(tǒng)將涉及到商鋪中所有帶條形碼的商品信息管理,數(shù)據(jù)統(tǒng)計,表格圖形顯示,消息推送等功能。應用目前流行的java語言,jsp技術,微信平臺等方式,實現(xiàn)中小型商家實時零距離接觸商品,賬單,利潤報表等功能,提供給商家一個貼心的小助手。
關鍵詞:便捷式;SM系統(tǒng);設計;開發(fā)
在當今科技發(fā)展迅速的世界中,產品進銷存系統(tǒng)的設計與實現(xiàn)方式已經較大程度上滿足了商家在這方面的需求,不僅涉及到網絡技術的應用,更是將信息化數(shù)據(jù)時代普及到中小型商鋪世界中。這種系統(tǒng)的開發(fā)重點主要集中于能在不同地點,不同時間,不同人員實時對自己商鋪的商品管理,銷售情況,庫存情況等了解和操作,系統(tǒng)還可通過微信平臺,向用戶提供類型查詢接口,真正實現(xiàn)對話式商品管理,在交互方式上邁出了極大一步,且在將來會越來越便捷,越來越普及。
本系統(tǒng)采用B/S結構,它是(Browser/Server,瀏覽器/服務器模式)的簡稱,是網頁技術發(fā)展后的一種訪問網絡結構模式,網頁瀏覽器是客戶端最主要的應用軟件。這種模式具有很大的便捷性,實現(xiàn)了統(tǒng)一的客戶端,能將所開發(fā)的系統(tǒng)功能實現(xiàn)的核心部分集中到web服務器上,在很大程度上簡化了應用系統(tǒng)的開發(fā)、維護以及使用。所以客戶機上只需要安裝一個瀏覽器(Browser),如谷歌瀏覽器(Chrome)火狐瀏覽器(Firefox)或IE瀏覽器(Internet Explorer),服務器可以安裝Oracle數(shù)據(jù)庫、MySQL數(shù)據(jù)庫或 SQL Server數(shù)據(jù)庫。瀏覽器通過Web Server同數(shù)據(jù)庫進行數(shù)據(jù)訪問和操作。這樣就大大簡化了客戶端電腦載荷,俗稱廋客戶端。減輕了開發(fā)人員在系統(tǒng)維護與升級上的成本與工作量,減少了用戶的總體成本。
瀏覽器/服務器模式的一個最大的優(yōu)點就是可以在任何時間,任何地點進行網絡操作而不用安裝任何專門的應用軟件。只要有一臺能上網的電腦或手機就能使用,真正實現(xiàn)客戶端無需維護的功能。而且系統(tǒng)擴展性非常容易,只要能上網,再由系統(tǒng)管理員分配一個用戶名和密碼,就可以使用了。甚至可以在線申請,通過公司內部的安全認證(如CA證書)后,不需要人的參與,系統(tǒng)可以自動分配給用戶一個賬號進入系統(tǒng)。
在設計本系統(tǒng)時,最先考慮的當然是系統(tǒng)的需求分析,主要針對系統(tǒng)的幾個核心模塊進行拆分,將系統(tǒng)整體拆分成幾個小模塊,細化設計,測試,然后將各個小模塊重新再拼接起來,即從大到小,再從小到大的設計思路。
系統(tǒng)總體模塊圖如圖1。
便捷式SM系統(tǒng)主要分為三個大模塊:系統(tǒng)后臺管理,系統(tǒng)前臺使用,微信平臺。由這三個大方向入手,使得設計變得清晰,然后再將各個大模塊進行細分。
系統(tǒng)后臺分為用戶管理和商品管理。
(1)用戶管理的設計采用RBAC(Role Based Access Control)模式,是“基于角色的權限管理”,由于本系統(tǒng)涉及到不同的角色對應使用不同的功能,因此需要對用戶進行權限設置,權限設置機制可以分為三個實體,分別是用戶實體,角色實體,功能實體。關系圖如圖2。
由于RBAC實現(xiàn)了用戶與訪問權限的邏輯分離,因此它極大的方便了權限管理。例如,如果一個用戶的職位發(fā)生變化,只要將用戶當前的角色去掉,加入代表新職務或新任務的角色即可,角色/權限之間的變化比角色/用戶關系之間的變化相對要慢得多,并且委派用戶到角色不需要很多技術,可以由行政管理人員來執(zhí)行,而配置權限到角色的工作比較復雜,需要一定的技術,可以由專門的技術人員來承擔,但是不給他們委派用戶的權限,這與現(xiàn)實中情況正好一致。
(2)商品管理模塊,包括商品類別,商品信息,商店信息,商店商品,訂單記錄,利潤報表等。各個實體都具有各自的相關屬性,以商品實體為例,其模型主要代碼如下:
//商品類型,在數(shù)據(jù)庫中存的是商品類別的外鍵id,java語言中是以整個對象為屬性
而封裝好對象后,向數(shù)據(jù)庫插入一件商品時,核心代碼如下:
頁面效果圖如圖3:
在頁面效果中,我們看到商品類別是以下列框的形式展現(xiàn)的,表明當新增一個商品記錄之前,必須先將商品類型表中的記錄取出,顯示在新增對話框中讓用戶選擇,而不是將商品類型的選項寫死在頁面代碼中,這樣的設計方式提供了良好的系統(tǒng)維護性和交互性。而商品類型在頁面中的獲取方式是使用了javascript的異步請求方式,它相對于同步請求具有極大的特性。
區(qū)別如下:
同步:提交請求->等待服務器處理->處理完畢返回 這個期間客戶端瀏覽器不能干任何事
異步: 請求通過事件觸發(fā)->服務器處理(這是瀏覽器仍然可以作其他事情)->處理完畢
因此,在本系統(tǒng)的設計中,頁面基本上采用的都是ajax異步請求,核心代碼如下:
總的來說,雖然使用異步執(zhí)行模式在編程序時十分復雜,但可以實現(xiàn)多任務并行執(zhí)行,使執(zhí)行的效率大大提高。接下來需要設計的則是訂單查詢和商品統(tǒng)計報表。
(1)訂單查詢,即當消費者付款時,生成的一條記錄,內容包括營業(yè)員,消費者,訂單號,總價格,折扣,訂單時間,訂單商品,訂單支付等。列表形式如圖4:
由圖4可知,在操作一欄有訂單商品和訂單支付按鈕,訂單商品表示此消費者在本次購買中的所有商品信息,訂單支付表示消費者使用的支付方式,支付方式有現(xiàn)金支付,會員卡支付等。
(2)商品統(tǒng)計報表,采用表格和圖形兩種方式展現(xiàn),以日期yyyy-mm-dd和月份yyyy-mm兩種方式查詢,日期查詢返回的是某一天的銷售情況和利潤情況,而月份查詢方式即顯示某一個月的銷售情況和利潤情況,如圖5所示:
兩種選擇,讓用戶體驗更好,讓用戶了解更清晰,表格顯示與圖形顯示,更直觀,對比更強烈。
后臺系統(tǒng)管理核心內容的實現(xiàn)重點就在于兩大塊,即基于角色的權限管理和商品相關信息的怎刪改查。權限管理側重于本系統(tǒng)的安全性考慮,商品相關信息管理便是系統(tǒng)要實現(xiàn)的主要功能。
當后臺的大部分功能設計完成后,要實現(xiàn)前臺的一個POS機功能就顯的簡單多啦,由于商品的銷售在錄入系統(tǒng)時,都有一個條形碼的屬性,因此,本系統(tǒng)在使用過程中需要用到一個條形碼掃描設備,它將掃描口對著商品的條形碼進行掃描,設備會自動將商品條形碼輸入到頁面的條形碼輸入框中,POS機操作界面如圖7:
使用設備掃描條形碼,設備自動在圖中的條形碼輸入框中輸入數(shù)值串,并在上方顯示商品信息,默認購買數(shù)量為1,營業(yè)員可以手動修改數(shù)量,也可以繼續(xù)掃除同類型商品條形碼,系統(tǒng)自動計算價格,顯示在圖中相應位置,系統(tǒng)設有會員卡制度,會員等級的不同,打折率也不一樣,系統(tǒng)自動計算折扣后的總價并顯示出來,用戶可以選擇支付方式,當消費者付整百時,營業(yè)員在付款輸入框輸入100,如圖,付款輸入框右側會自動顯示找零多少,這也是系統(tǒng)設計的一個貼心計算器。在這個營業(yè)員操作界面中,步驟也是相對簡單。PC端的設計大致到此就完成了,當然還有一些細節(jié)還沒有介紹,開發(fā)者在后期測試時有對其進行詳細的解決,比如商品查重,數(shù)據(jù)類型轉換,數(shù)據(jù)庫優(yōu)化等。
最后,本系統(tǒng)最體現(xiàn)便捷性的一個重點就在于利用微信平臺,注冊申請微信訂閱號,利用第三方微信接口設計,轉接url訪問到本系統(tǒng)中,商家就可以隨時隨地的使用手機微信進行對商品的銷售情況進行查詢和其它操作了。
大致步驟為:申請微信訂閱號,進入開發(fā)者中心,填寫相應的信息,最關鍵的是填寫服務器配置,一個便是本系統(tǒng)對接微信的一個url訪問接口,還有一個Token令牌,具體使用方式可查看微信官方提供的開發(fā)文檔,微信訂閱號的主要功能就是,用戶向訂閱號發(fā)送文本信息,微信平臺將信息轉發(fā)給本系統(tǒng),本系統(tǒng)接受用戶發(fā)送的信息后,進行后臺處理,結果返回給微信平臺,微信平臺再將該結果轉發(fā)給用戶。流程圖如圖8:
這里的用戶指的是商家,商家在進行訂閱號查詢是,必須先進行用戶名密碼驗證,防止非本系統(tǒng)用戶偷窺商家機密,即商家在進行發(fā)送查詢關鍵詞時,系統(tǒng)返回提示語:“請輸入用戶名和密碼,以逗號隔開”,用戶向訂閱號輸入用戶名密碼后,轉發(fā)給本系統(tǒng),系統(tǒng)進行數(shù)據(jù)庫查詢用戶表后,若查詢到結果,則允許用戶繼續(xù)查詢,否則,提示用戶無法查詢,請重新驗證。在用戶名密碼正確的情況下,用戶可以根據(jù)關鍵字:“今日利潤查詢”,“本月利潤查詢”,“XX商品銷售量”,“XX商品庫存量”等進行查詢。至此,真正體現(xiàn)了商家零距離管理和查詢商品的功能,實現(xiàn)本系統(tǒng)便捷性的操作。
在設計系統(tǒng)的過程中,遇到過諸多問題,比如權限管理,如何合理的設置角色的權限是一個頭疼的問題,系統(tǒng)最終采用逗號分隔式,將某角色所具備的所有權限以逗號的方式連接成一個字符串,存儲在表的一個字段中,每次驗證角色的權限時,使用split(“,”)的方式,將其分隔成權限數(shù)組。應該還有更好的方式,因此這一模塊還有待更深入的研究,系統(tǒng)的安全性在對外公網的發(fā)布中還有待進一步測試,最關鍵的是要防止XSS攻擊,它是web中最常見的javascript腳本攻擊,因此后臺在接受數(shù)據(jù)時,一定要進行一些特殊字符的過濾和轉義。除此之外,在頁面的顯示效果也有待加強,布局的合理以及美工效果。當然,在微信端,本系統(tǒng)具有極大的可擴展性,后期還可以對系統(tǒng)進行APP開發(fā),接口統(tǒng)一使用WEB的HTTP請求方式。在條件允許的情況下,還可以進行微信服務號開發(fā),服務號與訂閱號的差別主要在于是否有自定義菜單,訪問更加方便,可以直接點擊自定義菜單操作查詢,無需進行發(fā)送信息查詢。提高用戶的體驗效果,這也是系統(tǒng)在后期開發(fā)的一個展望。
基金項目:國家級“大學生創(chuàng)新性實驗計劃項目”(批準號:201412992003);福建省教育廳科研資助項目(批準號:JA13369);福建師范大學閩南科技學院“青年骨干教師重點培養(yǎng)對象”基金資助項目(批準號:mkq201008)
作者簡介:張建峰(1991-),男,福建壽寧人,本科,研究方向:網絡工程,計算機應用,人工智能。