资源描述
本科毕业论文(设计)题 目 基于Android技术的网上商城系统 的设计与实现 专 业 软件工程 作者姓名 学 号 单 位 聊城大学 指导教师 年 月聊城大学本科毕业设计目 录前 言11. 绪论11.1 选题意义11.2 研究现状22. 开发环境介绍32.1 Eclipse简介32.2 Android简介43. 需求分析53.1 需求分系重要性53.2 功能需求63.3 性能需求64. 总体设计74.1 总体设计重要性74.2 系统架构74.3 系统流程85. 详细设计85.1 资源规划85.2 数据库设计95.3 界面设计106. 功能实现146.5 提交订单功能实现22结束语23参考文献241摘 要随着电子技术和互联网以及移动互联网络的发展,电子商务(Electronic Commerce,EC)已经深入到各行各业,而使用电子商务作为购物渠道的人也日渐增多,成为人们购物方式的主流,电子商务购物网站便是基于这样的背景下,应用B/S(BROWSER/SERVER)架构,有效运用INTERNET技术的辅助,开设网上购物平台,有效的降低运营成本,提高经营效益,实现消费者的网上购物和在线电子支付的一种新型的商业运营模式。Android系统的出现,给移动互联网时代带来了新的发展。为了适应现代信息时代网络在线的需求,采用新信息技术,研究设计了一个基于安卓平台的购物系统的设计与实现。它能提供网上购物,为用户提供便利。该方案主要包括后台管理功能、Web服务器、网络、Android购物前端等部分组成,并采用了JAVA、ANDROID、JSP技术,Mysql数据库,利用Eclipse、TOMCAT、Dreamweaver等开发环境以及开发工具。为客户提供24小时方便快捷的在线购物服务。论文主要介绍了本系统的开发背景,所要完成的功能和开发的全过程。关键词:Android;Java;Web服务器;购物商城;Mysql1AbstractWith the development of electronic technology and the Internet and mobile Internet, e-commerce (Electronic Commerce, EC) has penetrated into all walks of life, and the use of e-commerce as a shopping channel is also increasing, becoming the mainstream shopping, e-commerce Shopping site is based on this background, the application of B / S (BROWSER / SERVER) architecture, the effective use of INTERNET technology support, set up online shopping platform, effectively reduce operating costs and improve operating efficiency, to achieve consumer online shopping and Online electronic payment of a new business model.Android system, the emergence of the mobile Internet era has brought new development. In order to meet the needs of modern online information network, the use of new information technology, research and design based on Andrews platform shopping system design and implementation. It can provide online shopping, to provide users with convenience. The program mainly includes background management functions, Web server, network, Android shopping front end and other components, and the use of JAVA, ANDROID, JSP technology, Mysql database, the use of Eclipse, TOMCAT, Dreamweaver development environment and development tools. 24 hours to provide customers with convenient online shopping service. The paper mainly introduces the background of the development of the system, the function and the whole process of development.Key words: Android; Java; Web server; Shopping Mall; Mysql224基于Android技术的网上商城系统的设计与实现前 言 随着社会科技的进步,人类知识总量的增长不断加快,以及市场竞争的日益激烈,人们对信息的认识产生了根本性变化。基于移动互联网这个全新的时代背景,人们日常上网的主要通道是手机。移动电子商务未来的发展潜力是吸引京东商城、当当网以及淘宝等电子商务企业进入这一领域的主要原因。 随着移动通信的发展及互联网向移动终端的普及,网络和用户对移动终端的要求越来越高,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。Android是一套真正意义上的开放性的移动设备综合平台,Android是由 Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发,因此,Android系统将是未来移动终端的主流,而基于Android终端的网上购物系统也将被广泛使用。1. 绪论1.1 选题意义对于普通的智能手机用户来说,智能手机已经成为人们生活中的一部分,每天和手机在一起的时间,超过任何电子设备。通过智能手机的用户可以不受时间、空间的限制,随时随地的通过智能手机在购物商城APP上浏览商城的所有产品的详细信息和商家活动,比PC端更为方便快捷。手机购物商城的开发符合了当前大环境下人们越来越追求便携舒适购物体验的需求。对于手机网上商城的商家来说,由于智能手机的的普及范围不断扩大,越来越多的人通过手机浏览信息,而通过手机传播的渠道更是多种多样,手机商城APP可以帮助他们快速传播商城的产品信息以及降低商家的广告费用。商家也能够更加便捷的查看商城的经营状况和商品的销售信息以便于根据市场环境做出及时的调整和改变。当前主流的电商平台如淘宝、京东、苏宁等来说已经都有十分成的熟移动商城系统,但对许许多多传统的中小型企业来说,他们对于手机网上商城发展没有那么好的前瞻性,目前仍正处于刚刚投入移动电商平台的浪潮中。尤其是当前Android手机商城的开发技术不断发展,成本也在下降更加适合中小型企业的需求,所以Android的网上商城系统发展前景在当前大环境下仍然可期。1.2 研究现状1.2.1 网购市场现状2011-2015年我国网络购物用户规模持续增长。2015年网购用户总规模达4.1亿人,是2011年的2.1倍,2015年网络购物用户规模增长率为14.3%。随着互联网的发展、触网用户增加以及网购方式的越来越流行,未来网购用户在整体网民中的比例将越来越高。2015年1-12月,PC端日均覆盖用户人数增幅不大,月度日均覆盖人数平均值为9810万人,个别月份覆盖人数呈现较大波动。1-12月移动端月度日均覆盖人数稳步增长,月度日均覆盖人数平均值为7806万人,与PC端差距逐渐缩小。2016年Q1季度,中国网购市场整体规模达到了9716亿元,同比增长28.3%,远超去年同期的7574亿元人民币,而移动端网购交易额达到了6593亿元,同比激增82.7%,在整体网购市场占比达到将近68%,是PC端的两倍还多。1.2.2 Android智能手机现状在2016年Q1季度,中国Android智能手机占市场份额的76.4%之多,而到了2017年,iOS系统今年第一季度在中国只占12.4%,创2014年来同时期最低的市场份额。和去年相比,Android系统的市场份额上升至87.2%。然而,在德国、法国、西班牙、意大利、英国这欧洲五国,智能系统的市场份额则有所不同。Android以76.3%的份额称霸五国的智能手机市场,而iOS同时期市场份额增长至20.7%。但还是能够看出来Android仍然是当前最为主流的智能手机操作系统,而且在很长一段时间内不会被超越。2. 开发环境介绍2.1 Eclipse简介2.1.1Eclipse的起源和发展IBM的Visual Age是Eclipse的前身。Visual Age认识到存在难以扩大,相关技术较为脆弱,难以集成与WebSphere Studio软件等诸多问题,进一步发展是非常困难的整合,同时也面临着来自Symantec公司的Visual Caf, Borland公司的JBuilder和其他竞争开发工具的压力, IBM公司决定创建一个更加开放,并且可以支持IBM的其他开发工具成为一体化的开发平台。1998年11月IBM公司成立了专门的项目开发团队开始开发平台,在2000年的新一代开发平台,这是熟悉的Eclipse的诞生。 2000年11月, IBM提出采用开放源码的Eclipse授权和释放的操作模式,以提升业界的注意力集中在Eclipse和加快其应用速度的重大决策。随后,IBM在2001年12月宣布向外部世界,捐赠4000万美元的源码的Eclipse开源社区;被Eclipse协会( Eclipse的联盟)的成员公司成立,以支持和促进了Eclipse开源项目。事实证明, IBM的决定是非常明智的。Eclipse受到广泛关注,使得它的用户络绎不绝,下载服务器被封锁,回到行业带来了震撼! IBM在EclipseCon 2004年宣布成立一个独立的,非盈利性基金,该基,金会负责Eclipse开发的管理和指导,目前其成员多达100个知名企业采用,包括Borland ,理性软件,红帽,赛贝斯,谷歌和甲骨文等行业巨头。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布;2008年6月发布代号为Ganymede的3.4版;2009年6月发布代号为Galileo的3.5版;2010年6月发布代号为Helios的3.6版;2011年6月发布代号为Indigo的3.7版;2012年6月发布代号为Juno的4.2版;2013年6月发布代号为Kepler的4.3版;2014年6月发布代号为Luna的4.4版;2015年6月项目发布代号为Mars的4.5版。2.1.2Eclipse的优势现在有成千上万的人在世界上使用Eclipse进行开发。为什么Eclipse有这么多的受众?这是与Eclipse设置许多功能有很大的关系。Eclipse是开放源代码软件。这意味着, Eclipse的不仅是免费使用的,除了可以通过学习源代码学习世界领先的编程技术的开发,还可以通过世界各地的开发人员共享有助于丰富公众开源库。Eclipse有着可扩展性和可配置性。Eclipse支持多种开发语言,不仅仅是Java 。Eclipse只是给开发者一个最低限度的核心系统功能可扩展,插件式架构使Eclipse扩展点,支持多国语言越好。只要安装适当的语言插件, Eclipse可以支持这样的开发语言。目前, Eclipse有支持C / C + + , COBOL , PHP,Perl , Python和其他语言。 (尽管Eclipse是主要是一个Java开发环境,但其体系结构确保了对其它编程语言的支持) 。Eclipse提供的多平台性的支持。开发人员可以使用他们感觉最舒服和熟悉的平台,如Windows,Linux和MacOS的,等等。Eclipse其单独的图形工具包,为每个平台,这使得应用程序具有接近本地操作系统的外观和更好的性能。2.2 Android简介Android是基于Linux内核的软件平台和操作系统,是Google 在2007 年11 月5日公布的手机系统平台,早期由Google 开发,后由开放手机联盟(Open Handset Alliance)开发。它采用软件堆层(software stack,又名以软件叠层)的架构,主要分为3 部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java 作为编写程序的一部分6。与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台7。其大优势特色:(1)开放性:在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。 8,9(2)丰富的硬件选择:这一点还是与Android平台的开放性相关,由于Android的开放性,使其硬件的支持较多,故拥有了更多的硬件选择。(3)不受任何限制的开发商:Android平台提供较广的平台给第三方开发商,因此不受框架束缚。(4)无缝结合的Google应用:Google公司本身拥有的应用能够完美无缝的与Android平台结合。 根据系统需要,在数据库的选择上,选用最流行的关系型数据库管理系统Mysql,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性,更有利于系统的开发。Tomcat是一个轻量级应用服务器,占用系统资源少,扩展性好,性能稳定,是现在比较流行的Web应用服务器,MyEclipse集成了很多eclipse没有的插件,对于Web的开发有很好的帮助。Eclipse 是开发Android系统的相对较好,稳定的开发工具。此次Java开发环境沿用的是一直很熟悉的JDK1.6,在Android方面用的是1.7版本SDK。电脑完全可以支持本次设计的开发。3. 需求分析3.1 需求分系重要性需求分析是程序设计中最关键的一个步骤,是其它步骤的基础。其主要任务是“为了解决这个问题,目标系统必须做什么”。主要确定目标系统有哪些功能。在这个步骤里程序员在用户那里搜集所有的将要开发的系统的需求信息,并且把这些信息编写成为用户和程序员都可以认可的需求说明书。需求分析特别重要。在软件工程的历史中,很长时间里人们一直认为在整个软件工程中简单一个步骤就是需求分析,但在随着时间的推移,它变成整个过程中最关键的一个的观念被越来越多的人认识到。为了使软件功能和性能的总体概念描述为具体的软件需求规格说明,只有使用软件需求分析,也才能为后期的软件开发奠定了基础。很多事实表明,当很多失败的大型应用系统在分析原因的时候,突然会发现,一切都是失败的需求分析导致的:不彻底或者不完善的需求分析,归结于需求分析的方法使用不当,使得开发这需要不停地重复对需求进行分析,也使得设计、编码、测试等环节无法顺利进行下去;客户和我们配合不好,导致客户对需求认知不明,客户不断变化的需求,同样无法顺利进行设计、编码、测试等环节。软件的需求分析是软件开发前的第一个阶段,也是关系到软件开发成败的关键步骤,在整个软件开发的过程中,可以说这个阶段所要占用的时间是相当大的。如果需求分析做好了,那么在以后的软件设计过程中,可以省去不少的时间。该街道不是确定系统怎样的完成它的工作,而仅仅是确定系统必须完成哪些工作,也是对目标系统提出完整、正确、清晰、具体的要求。3.2 功能需求通过对市场的调研并进行分析,了解到了系统的需求。本系统是的基于网络购物系统,管理员通过后台进行商品管理、类别管理、商铺管理、订单管理、用户管理。前台主要功能包括了用户注册、快速浏览、用户登录,商品查询,添加购物车,提交订单,购物车管理等功能。3.3 性能需求好的架构设计应该具有以下几点:第一点,良好的模块化。每个模块职责明晰,模块之间低耦合,模块内部高聚合并合理地实现信息隐藏;第二,适应功能需求的变化,适应技术的变化。应该保持应用相关模块和领域通用模块的分离;第三,对数据的良好规划;第四,明确灵活的部署规划。对于普通用户性能需求的要求就是界面友好,运行时间满足使用要求,安全性得到安全保证。所以对于本系统的综合要求如下:(1)系统应建立友好的界面,既要操作简单、直观、灵活,又要易于学习掌握;开发购物系统目的是为了用户能够方便的进行在线购物。如果操作复杂,就失去了推广价值。(2)系统在输入用户名以及密码时,应具有自动识别的功能,以帮助用户改正错误。(3)系统在确定用户名和密码后,在正确连接数据库后,首先应对用户名和密码进行检验,若没有此用户名应给出相应的提示;系统应具有界面相互转换的功能,在每一个模块之间应具有相互转换的功能,而无需用户退回主界面重新选择。系统应具有良好的安全性。(4)系统可扩充、易维护。系统应充分考虑到用户对购物车的增删改查等,具备一定的扩充能力。4. 总体设计4.1 总体设计重要性 总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。可以在全局高度上进行总体设计,花较少成本,多种可能的系统实现方案和软件结构要在较抽象的层次上进行分析和对比,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。4.2 系统架构本系统的架构主要是Android客户端通过网络通信访问后台服务,后台采用JDBC访问数据库。用户在Android手机客户端进行操作如购物,发送订单等与后台数据库进行交互时,首先通过移动通信网络,采用HTTP协议把数据传入后台服务器中。后台服务器通过对数据库的增、删、改、查操作。数据库,将数据显示给后台服务器。后台服务器取得数据后,将数据通过移动无线网络,采用Http协议返回给客户端,完成用户的操作。架构图如表4.1所示:表4.1 系统架构数据库后台服务Android客户端4.3 系统流程在本Android商城系统中,系统流程是这样的:首先用户进入系统后,需要用户进行登录或者可以先逛逛本系统,然后需要购买的时候再注册登录。用户登录后,便进入商品的浏览界面。用户可以浏览到商品的图片,价格,以及简单描述等信息。也可以点击查看详情,可以对查单进行一个比较全面的了解。用户可以根据自己的喜好。可以通过价格分类,进行商品的查询。如果是没有注册过账户的话需要用户进行注册并登录后才能购买商品,注册页面只需要填写用户的用户名、密码等相关信息就可以完成注册。本系统的流程图如图4.2所示: 图4.2 系统流程5. 详细设计5.1 资源规划资源规划的定义一是指确定开展项目活动需要何种资源(人力、设备、材料、资金)以及所需数量的规划。百度百科中还有一个定义是根据可持续发展的原则,对资源的开发利用与保护方案,作出比选与安排的活动过程。资源规划是系统资源建设与开发利用的基础和关键。当前 ,程序员对开发系统资源建设与开发利用的重要性已有充分的认识 ,并做了大量的工作 ,但对系统资源规划的重要性重视不够。为了更有效地利用系统资源 ,必须重视和加强对系统资源的规划。这个商城系统的主要功能可以分为二大类:一是Activity界面的展示设计;二是通过网络访问服务器数据。Activity界面的展示设计是通过设置各个界面对应的xml文件来实现的。而网络访问服务器数据,则采用http通讯协议,请求结果以拼接字符串的方式返回,在客户端通过截取字符串获得返回数据。5.2 数据库设计数据库技术是信息资源管理最有效的手段。数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。本系统服务端采用MySQL数据库,在该系统中一共有很多张表,部分表单介绍如下:表5.1 wct_bill表Field NameField TypeSizeNullidint11NOT NULLgidsvarchar100DEFAULT NULLpircevarchar100DEFAULT NULLuservarchar100DEFAULT NULLuidvarchar100DEFAULT NULLshopvarchar100DEFAULT NULLbillvarchar2000DEFAULT NULLopenidvarchar255DEFAULT NULLndatevarchar255DEFAULT NULLtotalvarchar255DEFAULT NULLwayvarchar50DEFAULT NULLgnamesvarchar500DEFAULT NULL表5.2 wct_good表Field NameField TypeSizeNullidint10NOT NULLgnamevarchar100DEFAULT NULLpricevarchar10DEFAULT NULLjifenvarchar10DEFAULT NULLnotevarchar500DEFAULT NULLtypevarchar50DEFAULT NULLimgvarchar500DEFAULT NULLcountvarchar10DEFAULT NULLtypeidvarchar10DEFAULT NULLxiaoliangint10DEFAULT NULL表5.3 wct_user表Field NameField TypeSizeNullidint10NOT NULLusernamevarchar50DEFAULT NULLpasswdvarchar50DEFAULT NULLroletypevarchar50DEFAULT NULLemailvarchar200DEFAULT NULLaddressvarchar200DEFAULT NULLtelvarchar50DEFAULT NULLqqvarchar20DEFAULT NULLwechatvarchar20DEFAULT NULLsexvarchar20DEFAULT NULL5.3 界面设计界面设计是非常重要的,因为产品是给客户用的而客户第一次接触第一眼看到的就是这个产品是什么样子的。如果一个产品你说功能上有多好,多强大而界面上却很糟糕,给用户的感觉非常不好,估计用户就没心情再看下去了。所以我们要给用户一个好的体验,让用户第一感觉也觉得是非常不错的。界面与用户的交互也是非常友好的,用户才会继续关注和使用。美总是给人一种愉快的心情,所以每个产品都必须把界面做好,并且能够通过一种交互的形式告诉用户怎么使用。登录界面:采用对话框的形式,用户输入正确的用户名和密码就可以进入。并且对用户名和密码进行了为空的验证。登录界面如图5.1所示: 图5.1 用户登录界面选择商品列表界面:采用对话框的形式,进入系统,首先要选择一个想要查看的商品类别列表。其界面如图如图5.2所示: 图5.2 商品列表界面选择好商品类别后,进入商品列表界面,选择好喜欢的商品。其界面如图5.3所示:图5.3 商品选择界面购物车界面:采用对话框的形式,选择好相应的商品,点击确定添加到购物车。其界面如图5.4所示:图5.3 购物车订单界面我的订单界面。在购物车界面完成购物,点击提交订单按钮后,点击【我的订单】按钮进入我的订单界面更新菜单界面如图5.5所示: 图5.3 我的订单界面6. 功能实现6.1 用户注册功能实现注册实现了用户注册用户登录功能,用户注册模块用来收集用户的个人信息包括用户名、密码、邮箱地址等信息。我们需要收集哪些用户信息就可以在注册页面添加对应的Input输入框,在数据库中增加与之相对应的字段信息,最后再信息处理页面增加相应的写入数据库字段就可以了。用户注册页面实现首先是在注册页面添加一个注册表单,定义若干个文本包括用户名、密码等。实现代码如下:function register() var fdata = serializeObject($(#registerform); if($.trim(fdata.username) = | $.trim(fdata.passwd) = | $.trim(fdata.tel) = | $.trim(fdata.address) = ) showLoader(请填写完整信息!,true); return; if(fdata.tel.length11) showLoader(电话号码格式不对!,true); return; if(fdata.passwd != fdata.passwd2) showLoader(两次密码不一致!,true); return; /uplaodImg(function(r) /fdata.img = r; ajaxCallback(checkUser,fdata,function(d) if(d.info = success) ajaxCallback(register,fdata,function(r) if(r.info=success) showLoader(注册成功!,true); toLogin(); else showLoader(注册失败请稍候再试!,true); ); else showLoader(用户名已存在!,true); ); /);6.2 用户登录功能实现这里通过request.getParameter()方法获取请求参数,调用商品信息查询方法,依据数据库查询结果返回评价信息,实现代码如下:$(function() var uinfo = localStorageuserinfo; var f = localStoragewelcomed; if(f) if(uinfo & $.trim(uinfo)!=) uinfo = JSON.parse(uinfo); $(#lusername).val(uinfo.username); $(#lpasswd).val(uinfo.passwd); uinfo.remember = 1; login(uinfo); else changePage(welcomepage1,none); $(#welcome1).bind(swipeleft tap,function() changePage(welcomepage2); ); $(#welcome2).bind(swipeleft tap,function() changePage(welcomepage3); ); $(#welcome3).bind(swipeleft tap,function() changePage(welcomepage4); ); $(#welcome4).bind(swipeleft tap,function() changePage(welcomepage5); ); $(#welcome5).bind(swipeleft tap,function() changePage(welcomepage6); ); $(#welcome6).bind(swipeleft tap,function() changePage(loginpage); localStoragewelcomed = yes; ););var userinfo = null;function login(uinfo) var fdata = uinfo | serializeObject($(#loginform); if($.trim(fdata.username)= | $.trim(fdata.passwd) = ) showLoader(请输入用户名或密码!,true); return; ajaxCallback(login,fdata,function(data) if(data.info & data.info=fail) showLoader(用户名或密码错误,true); changePage(loginpage); else showLoader(登陆成功!,true); userinfo = data; if(fdata.remember = 1) localStorageuserinfo = JSON.stringify(data); else localStorageuserinfo = ; toMain(); );function logout() userinfo = null; toLogin();6.3 商品查询功能实现实现代码如下:function toGood(id) var obj = getGoodById(id); focusobj = obj; changePage(goodpage); $(#gname2).text(商品名:+obj.gname); $(#gimg2).attr(src,fileurl+obj.img); $(#gnote2).text(简介:+obj.note); $(#gprice2).text(价格:+obj.price);function getGoodById(id) for(var i=0;igoodlist.length;i+) var good = goodlisti; if(good.id = id) return good; return null;6.4 购物车管理功能实现function addToCar() var str = localStoragegouwuche; var list = ; if(str) list = JSON.parse(str); list.push(focusobj); localStoragegouwuche = JSON.stringify(list); showLoader(已经添加到购物车!,true);function showCar() changePage(carspage); carlist();function carlist() var str = localStoragegouwuche; var list = ; if(str) list = JSON.parse(str); $(#cars).refreshShowListView(list);function removeCar(id) var str = localStoragegouwuche; var list = ; var newlist = ; if(str) list = JSON.parse(str); for(var i=0;ilist.length;i+) var obj = listi; if(obj.id = id) continue; newlist.push(obj); localStoragegouwuche = JSON.stringify(newlist); $(#cars).refreshShowListView(newlist); function tijiaocar() if(userinfo) changePage(infopage2); $(#iscar2).val(2); else changePage(infopage); $(#iscar).val(2); function tijiaocaruser() var note = $(#infobeizhu2).val(); var str = localStoragegouwuche; var sids = ; var shopgoods = ; var bills = ; if(str) var list = JSON.parse(str); for(var i=0;ilist.length;i+) var flag = false; var good = listi; for(var n=0;nsids.length;n+) if(sidsn=good.sid) shopgoodsgood.sid.push(good); flag = true; break; if(!flag) shopgoodsgood.sid = ; shopgoodsgood.sid.push(good); sids.push(good.sid); for(var i=0;isids.length;i+) var goodlist = shopgoodssidsi; var gids = ; var gnames = ; var sname = ; var total = 0; var sid = sidsi; var bill = ; bill.uid = userinfo.id; bill.user = userinfo.username; for(var n=0;ngoodlist.length;n+) var good = goodlistn; if(n=0) sname = good.shop; gids+=good.id; gnames+=good.gname; else gids+=,+good.id; gnames+=,+good.gname; total+=parseInt(good.price); bill.shop = sname; bill.sid = sid; bill.gids = gids; bill.gnames = gnames; bill.total = total; bill.tel = userinfo.tel; bill.address = userinfo.address; bill.note = note; bills.push(bill); if(bills.length) ajaxCallback(saveBills,bills:JSON.stringify(bills),function(data) localStoragegouwuche = ; showTipTimer(订单提交成功!,function() toMyBill(); ); ); function tijiaocaryouke() var tel = $(#infotel).val(); var address = $(#infoaddress).val(); var note = $(#infobeizhu).val(); if($.trim(tel)= | $.trim(address)=) showLoader(请填写电话和地址信息!,true); return; if(tel.length11) showLoader(请填写正确的电话号码!,true); return; var str = localStoragegouwuche; var sids = ; var shopgoods = ; var bills = ; if(str) var list = JSON.parse(str); for(var i=0;ilist.length;i+) var flag = false; var good = listi; for(var n=0;nsids.length;n+) if(sidsn=good.sid) shopgoodsgood.sid.push(good); flag = true; break; if(!flag) shopgoodsgood.sid = ; shopgoodsgood.sid.push(good); sids.push(good.sid); for(var i=0;isids.length;i+) var goodlist = shopgoodssidsi; var gids = ; var gnames = ; var sname = ; var total = 0; var sid = sidsi; var bill = ; bill.uid = ; bill.user = ; for(var n=0;ngoodlist.length;n+) var good = goodlistn; if(n=0) sname = good.shop; gids+=good.id; gnames+=good.gname; else gids+=,+good.id; gnames+=,+good.gname; total+=parseInt(good.price); bill.shop = sname; bill.sid = sid; bill.gids = gids; bill.gnames = gnames; bill.total = total; bill.tel = tel; bill.address = address; bill.note = note; bills.push(bill); if(bills.length)
展开阅读全文