• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SSH的二維碼點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2018-01-04 11:06:12楊廷發(fā)丁川蕓蘭全祥
      電腦知識(shí)與技術(shù) 2018年30期
      關(guān)鍵詞:網(wǎng)站設(shè)計(jì)二維碼

      楊廷發(fā) 丁川蕓 蘭全祥

      摘要:為了提高餐廳食客的點(diǎn)餐效率和餐廳的工作效率,為用戶提供更好的就餐體驗(yàn),設(shè)計(jì)并實(shí)現(xiàn)了基于SSH的線上點(diǎn)餐系統(tǒng)。對(duì)系統(tǒng)進(jìn)行了需求分析和數(shù)據(jù)庫設(shè)計(jì),并選用Spring, SpringMVC, Hibernate作為開發(fā)框架,Mysql作為數(shù)據(jù)庫,Tomcat作為服務(wù)器,實(shí)現(xiàn)了商家店鋪信息維護(hù)、商家菜品信息管理、訂單管理等模塊,并為用戶提供了二維碼點(diǎn)餐及在線結(jié)算等功能,解決了菜品信息的實(shí)時(shí)性、點(diǎn)餐的快捷性、結(jié)算的便捷性等問題。

      關(guān)鍵詞:SSH;線上點(diǎn)餐;網(wǎng)站設(shè)計(jì);二維碼

      中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)30-0084-03

      1 背景

      隨著現(xiàn)代科技的進(jìn)步,互聯(lián)網(wǎng)的應(yīng)用和普及日益豐富著人們的生活。雖然網(wǎng)上訂餐因其便捷性受到眾多用戶青睞,但更多人在工作之余、親友聚餐時(shí)更愿意選擇到餐廳直接消費(fèi)。然而,傳統(tǒng)點(diǎn)餐、結(jié)賬等環(huán)節(jié)極大地降低了用戶體驗(yàn)。因此,開發(fā)一款通過二維碼進(jìn)行在線點(diǎn)餐、在線結(jié)算的線上點(diǎn)餐系統(tǒng)將能極好的提高餐廳的管理效率以及用戶體驗(yàn)。

      2 技術(shù)選型

      基于SSH的二維碼點(diǎn)餐系統(tǒng)采用Apache Tomcat+ Java+ Mysql的黃金組合方式進(jìn)行開發(fā)[1], Apache Tomcat作為Web服務(wù)器,Java作為主要開發(fā)語言,Mysql作為數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)。系統(tǒng)使用SSH(Spring+ SpringMVC+ Hibernate)框架搭建系統(tǒng)結(jié)構(gòu),完成系統(tǒng)的請(qǐng)求處理、對(duì)象管理以及持久化操作。用戶通過二維碼訪問點(diǎn)餐系統(tǒng),完成菜品查看并創(chuàng)建訂單,最終實(shí)現(xiàn)點(diǎn)餐和結(jié)算。

      SSH框架由Spring,SpringMVC和Hibernate組成。Spring相對(duì)于JavaEE中的EJB而言,是一款輕量級(jí)的框架,也是是非侵入式的,基于Spring系統(tǒng)應(yīng)用中代碼沒有過多的依賴,并且不局限于服務(wù)器端的開發(fā)[2]。

      SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)WEB框架,即使用了MVC架構(gòu)模式的思想,將WEB層職責(zé)解耦,也將控制器、模擬器對(duì)象、分派器以及處理對(duì)象的角色進(jìn)行分離,實(shí)現(xiàn)了Spring的IoC思想[3]。

      Hibernate是一個(gè)優(yōu)秀的持久層框架,同時(shí)也是一個(gè)主流的ORM工具,可以讓開發(fā)人員以對(duì)象思維操作關(guān)系型數(shù)據(jù)庫,并且Hibernate對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,其讓編碼過程變得更加簡(jiǎn)潔、高效[4]。

      3 系統(tǒng)分析

      3.1 需求分析

      基于SSH的二維碼點(diǎn)餐系統(tǒng)主要是為商家提供商品信息管理、消費(fèi)額統(tǒng)計(jì)等,并為用戶提供二維碼點(diǎn)餐、在線結(jié)算、消費(fèi)查詢等功能,其面向的主要用戶群體為店鋪商家和普通消費(fèi)者。經(jīng)過調(diào)查研究發(fā)現(xiàn),線上點(diǎn)餐系統(tǒng)需求分析按功能性需求和非功能性需求可歸納為以下幾點(diǎn)。

      功能性需求主要包括以下功能:

      1) 商家登錄。商家可以在系統(tǒng)后臺(tái)管理界面進(jìn)行登錄,商家沒有登錄將無法進(jìn)行后臺(tái)管理操作。

      2) 信息維護(hù)。商家可以通過后臺(tái)管理程序維護(hù)商家店鋪信息以及菜品信息等,保證信息的時(shí)效性與正確性。

      3) 訂單管理與統(tǒng)計(jì)。商家可以在后臺(tái)管理程序中對(duì)訂單進(jìn)行管理、營(yíng)業(yè)額統(tǒng)計(jì)以及餐桌和訂單二維碼信息管理。

      4) 下單與結(jié)算。用戶可以通過二維碼進(jìn)入點(diǎn)餐界面,然后查看菜品、加入購物車并下單,最后可直接通過二維碼進(jìn)行結(jié)賬付款。

      非功能性需求主要包括以下幾點(diǎn):

      1) 便捷性。用戶可直接通過掃描二維碼進(jìn)入餐廳點(diǎn)餐并下單;后臺(tái)管理能夠及時(shí)查看用戶訂單,對(duì)訂單進(jìn)行處理并生成相應(yīng)的訂單信息。

      2) 友好性。系統(tǒng)頁面美觀且友好,用戶操作需簡(jiǎn)單便捷,用戶使用門檻低。

      3) 安全性。商家后臺(tái)登錄模塊要求保障用戶數(shù)據(jù)安全,防止用戶信息被竊取,同時(shí)對(duì)用戶訪問權(quán)限進(jìn)行控制,確保系統(tǒng)安全。

      4) 完整性。用戶訂單數(shù)據(jù)要確保其完整性,以便商家進(jìn)行銷售分類統(tǒng)計(jì)。

      3.2 系統(tǒng)功能模塊設(shè)計(jì)

      點(diǎn)餐系統(tǒng)從層次上可劃分為用戶前臺(tái)應(yīng)用和商家后臺(tái)管理程序。前臺(tái)應(yīng)用主要包括菜品查詢、購物車和訂單查看三個(gè)功能模塊組成;后臺(tái)功能主要包括餐廳訂單管理、菜品信息管理以及商家信息管理三個(gè)功能模塊,系統(tǒng)功能結(jié)構(gòu)如圖1所示。

      3.2.1用戶前臺(tái)應(yīng)用

      前臺(tái)主要用于向用戶展示餐廳菜品,用戶可通過掃描二維碼直接進(jìn)入點(diǎn)餐界面,實(shí)現(xiàn)查看菜品、加入購物車、下單以及在線結(jié)賬等功能。用戶所請(qǐng)求的資源如果已經(jīng)存儲(chǔ)在服務(wù)器中,則由服務(wù)器直接將資源推送至客戶端;如果所請(qǐng)求的資源為動(dòng)態(tài)資源(需與持久化層交互數(shù)據(jù)),則交由后臺(tái)處理程序進(jìn)行處理。

      3.2.2 后臺(tái)管理模塊

      商家可通過后臺(tái)管理程序?qū)Σ蛷d基本信息進(jìn)行維護(hù),保障菜品信息的正確性和時(shí)效性。商家可以添加、更新和刪除菜品,創(chuàng)建和刪除菜品類別,且可以對(duì)餐廳桌位進(jìn)行管理。除此,商家還可以進(jìn)行餐廳訂單管理以及銷售統(tǒng)計(jì)。

      3.3 數(shù)據(jù)庫設(shè)計(jì)

      數(shù)據(jù)庫設(shè)計(jì)是信息系統(tǒng)需求分析到系統(tǒng)實(shí)現(xiàn)中的一個(gè)關(guān)鍵環(huán)節(jié)。經(jīng)過需求調(diào)研,設(shè)計(jì)系統(tǒng)的概念結(jié)構(gòu)并得出數(shù)據(jù)庫邏輯結(jié)構(gòu),然后對(duì)設(shè)計(jì)后的E-R圖進(jìn)行轉(zhuǎn)換,使其邏輯結(jié)構(gòu)符合DBMS商品支持的數(shù)據(jù)模型。系統(tǒng)采用Mysql作為系統(tǒng)數(shù)據(jù)持久化的工具,通過對(duì)系統(tǒng)的功能分析主要包括商家、菜系、餐桌、菜品、系統(tǒng)管理員、訂單、分類等系統(tǒng)E-R圖如圖2所示。

      4 系統(tǒng)實(shí)現(xiàn)

      基于SSH線上點(diǎn)餐系統(tǒng)主要是為商家和用戶提供便利的在消費(fèi)服務(wù)點(diǎn)餐服務(wù)。該文主要介紹商家登錄、菜品信息維護(hù)、用戶二維碼點(diǎn)餐以及結(jié)算等功能。

      4.1 商家登錄

      線上訂餐系統(tǒng)需要商家登錄才能進(jìn)行后臺(tái)數(shù)據(jù)管理,普通用戶只需掃描二維碼便可訪問系統(tǒng)。登錄模塊在前端采用JavaScript對(duì)用戶輸入數(shù)據(jù)進(jìn)行初步驗(yàn)證,后端采用Struts2驗(yàn)證框架二次驗(yàn)證,當(dāng)輸入錯(cuò)誤時(shí)將給出友好提示。另外,登錄界面還采用隨機(jī)函數(shù)生成驗(yàn)證碼并采用MD5對(duì)用戶密碼進(jìn)行加密,提高系統(tǒng)安全性。另外,還使用了過濾器或者攔截器對(duì)用戶訪問進(jìn)行控制和攔截[5]。以下為登錄驗(yàn)證模塊代碼和商家登錄代碼。

      數(shù)據(jù)驗(yàn)證XML編碼如下:

      true

      用戶名不能為空

      商家登錄部分代碼如下:

      business.setPassword(Conver2MD5.getMD5(business.getPassword()));

      if (new BusinessDaoImp().selectUsername(business)) {return SUCCESS;}else{

      return ERROR;}

      4.2 菜品信息維護(hù)

      商家可以通過后臺(tái)管理程序?qū)Ξ?dāng)前的餐廳菜品信息進(jìn)行維護(hù)。商家可以刪除過時(shí)的菜品或者添加新的菜品,也可以為菜品上傳最新圖片。

      添加菜品代碼如下:

      public ModelAndView insert(@RequestParam("src") MultipartFile pictureFile, Dishes dishes) {

      ModelAndView mod;

      mod = serviceImp.insert(pictureFile,dishes);

      mod.setViewName("saveFood");

      return mod;

      }

      商家在進(jìn)行其他數(shù)據(jù)操作時(shí),若填寫信息不正確,會(huì)提示輸入不合法,無法完成對(duì)數(shù)據(jù)庫的持久化操作。

      4.3 二維碼點(diǎn)餐和結(jié)算

      用戶可以通過二維碼直接進(jìn)入餐廳進(jìn)行點(diǎn)餐,在就餐結(jié)束之后可掃描系統(tǒng)生成的二維碼進(jìn)行結(jié)賬。該系統(tǒng)采用QRCode生成二維碼,生產(chǎn)二維碼代碼如下:

      Qrcode qrcode = new Qrcode();

      qrcode.setQrcodeErrorCorrect('M');

      qrcode.setQrcodeEncodeMode('B');

      qrcode.setQrcodeVersion(7);

      byte[] bytes = data.getBytes(StandardCharsets.UTF_8);

      BufferedImage image= new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);

      Graphics2D g = image.createGraphics();

      g.setBackground(Color.white);

      g.clearRect(0, 0, 139, 139);

      g.setColor(Color.blue);

      if (bytes.length > 0 && bytes.length < 128) {

      boolean[][] b = qrcode.calQrcode(bytes);

      for (int i = 0; i < b.length; i++) {

      for (int j = 0; j < b.length; j++) {

      if (b[i][j]) {

      g.fillRect(j * 3 + 2, i * 3 + 2, 3, 3);

      }}}}

      系統(tǒng)后臺(tái)二維碼收款效果圖如圖4所示。

      4.4 購物車管理

      購物車管理可以實(shí)現(xiàn)菜品的添加和移除,并實(shí)時(shí)計(jì)算商品金額,關(guān)鍵代碼如下。

      Map car = (Map) request.getSession().getAttribute("car");

      Dishes onedishes = (Dishes) request.getSession().getAttribute("onedishes");

      Map dishesMap = userDishesService.addToCar(car, onedishes);

      double price = userDishesService.countPrice(dishesMap);

      double mprice = userDishesService.countMPrice(dishesMap);

      5 結(jié)束語

      基于SSH的線上點(diǎn)餐系統(tǒng)為商家管理餐廳菜品信息以及用戶點(diǎn)餐、結(jié)賬提供了極大的便利。系統(tǒng)采用SSH框架,實(shí)現(xiàn)了商家登錄、菜品信息維護(hù)、用戶二維碼點(diǎn)餐以及結(jié)算等功能,有效地解決了菜品信息的實(shí)時(shí)性、點(diǎn)餐的快捷性、結(jié)算的便捷性等問題。

      參考文獻(xiàn):

      [1] 趙曉華. 基于PHP技術(shù)的中小企業(yè)網(wǎng)站開發(fā)[J]. 自動(dòng)化與儀器儀表, 2017(10): 158-160.

      [2] 黃俊勇. 基于Spring框架的研究與設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù), 2018, 14(3): 116-117, 120.

      [3] 黃秀娟. 基于SpringMVC+Hibernate+Extjs框架的Web系統(tǒng)應(yīng)用研究[J]. 電腦知識(shí)與技術(shù), 2015, 11(16): 63-65.

      [4] 溫立輝. Hibernate框架持久化應(yīng)用及原理探析[J]. 科技創(chuàng)新與應(yīng)用, 2017(3): 97.

      [5] 姚添譯, 楊廷發(fā), 蘭全祥. Java EE中Filter技術(shù)的研究與應(yīng)用[J]. 電腦知識(shí)與技術(shù), 2018, 14(18): 47-50.

      【通聯(lián)編輯:謝媛媛】

      猜你喜歡
      網(wǎng)站設(shè)計(jì)二維碼
      可以吃的二維碼
      二維碼迷宮
      二維碼
      童話世界(2020年32期)2020-12-18 18:15:41
      讓嚴(yán)肅的二維碼呆萌起來
      二維碼讓政務(wù)公開更直接
      企業(yè)網(wǎng)站建設(shè)的探討
      網(wǎng)站設(shè)計(jì)課程內(nèi)容優(yōu)化探討
      可復(fù)用的高職網(wǎng)站后臺(tái)管理系統(tǒng)的設(shè)計(jì)
      二維碼,別想一掃了之
      計(jì)算機(jī)等級(jí)考試網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)
      科技資訊(2015年3期)2016-01-14 16:58:27
      仙桃市| 德江县| 霍城县| 栖霞市| 全南县| 榕江县| 颍上县| 鄂伦春自治旗| 林甸县| 博客| 新源县| 元江| 津南区| 南充市| 墨竹工卡县| 正定县| 四子王旗| 无锡市| 海伦市| 千阳县| 会东县| 耒阳市| 孟津县| 宝山区| 德庆县| 平原县| 河津市| 沙田区| 政和县| 鄂尔多斯市| 宁蒗| 洪湖市| 兴安盟| 江川县| 黑河市| 合江县| 霸州市| 大新县| 搜索| 民县| 改则县|