admin管理员组

文章数量:1531657

2024年2月17日发(作者:)

基于Android系统的手机网上商城设计与实现

中文摘要

中文摘要

网上购物人群数量的增多,促进了国内各大B2C(Business—to—Customer)网

站(淘宝、京东、当当)的发展,这些网站都拥有自己对应的手机客户端软件便于

用户通过手机网上购物。截止到2011年底,Android操作系统在国内的市场份额

为68.4%,并且这一份额继续在增长,因此开发一款基于Android操作系统的针对

某一品牌的网上商城,成为互联网品牌商家一个迫切的要求。本课题来源于一个

实际的商业项目,该手机客户端商城用户登录后可以实现同登录PC机网站商城一

样的功能,完成网上购物的需求。本系统所实现的主要功能有:促销信息展示、

商品信息展示、购物车功能、订单处理功能、收藏夹功能、用户账户管理、用户

收货地址管理、用户订单管理。

本人从事工作主要是系统后台设计和开发,此外做了一些手机客户端界面开

发工作。首先针对需求,定义出了与商家服务器之间同步数据的接口,确定数据

传输方式:其次结合客户端功能需求,定义出了客户端与服务器端的通信接口。

采用SSH(Struts+Spring+Hibernate)架构搭建服务器端的开发环境,从需求文档

中抽象出所有实体类进而进行数据库设计:最后开发出文档中定义好的业务逻辑

接口。在客户端方面本人负责开发了购物车主晃面、结算中心界面、支付方式界

面、送货时间界面、发票界面、留言界面、订单提交成功界面和收货地址界面。

该Android手机客户端软件V1.0己于2011年上线,已经有不少用户通过该软

件购买商品。该客户端软件运行良好,用户点击响应速度与Android京东手机客户

端持平,在网络正常情况下,订单提交成功的响应速度在5秒以内。

关键词:Android;接口;手机商城;SSH

分类号:TP311.5

北京交通大学专业硕士学位论文

V1

Abstract

Abstract

The increase in the number of customers for online

shopping,encourages

the

development

of

maj or

domestic B2C

websites(For example,TaobaoJingdong,and

Dangdang),which

have mobile clients to

help

customers shop using mobile phones.Up

to the end of 20 1 1,the market share of the Android operating system indoor is 68.4%,

and continues

word文档 可自由复制编辑

growing,SO developing

an E—commerence website for a brandbased on

the Android

operating system

has become an

urgent requirement

of online business.

This

paper comes

from a practical commercial

proj ect,and

the mobile client has the

same functions as those in the shopping website on the PC,meeting the online

shopping

requirements

of customers.The main function of this

system

are listed as followed:

discount information

display,product

information

display,shopping

cart,order

processing,favorite products management,user account management,the management

of delivery address management and order management.

The author focuses on the

design

and the

implementation

of the business

logic

of

the back

end,and

some UI

design

of the client.The work for the back end includes:

Interfaces are

implemented

to

sync

data between the back endand the database of a

website

according

word文档 可自由复制编辑

to the

requirement

document.Also interfaces are

implemented

to

sync

data between the client and the back end.The

system

uses SSH framework to

integrate data model obj ects and implement business logics.The work

for the client UI

design includes:shopping

cart

page UI design,the

UI design of settlement center page,

the UI

design

of

payment page,the

UI

design

of delivery time

page,the UI design

of

comments

page,the

UI

design

of order success

page

and the UI

design

of

delivery

address page.

The Android client was released in 20 1 1,which has

helped

a lot of users purchase

goods.The quality

of the client is good and the response time for the user click keeps at

the same level with the client from

JingDong.It only

takes less than five seconds to

finish an order.

word文档 可自由复制编辑

Keywords:Android;interface;E-commerence website;SSH

CI.ASSNo:TP3】】.5

Vll

北京交通大学专业硕士学位论文

致谢

本论文的工作是在我的导师刘铎老师的悉心指导下完成的,刘铎老师严谨的

治学态度和科学的工作方法给了我极大的帮助和影响,刘铎老师渊博的专业知识,

严谨的治学态度,科学的工作方法,精益求精的工作作风,诲人不倦的高尚师德,

严以律己宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。

不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待

人接物为人处世的道理。从开题到论文最终完成,刘老师都始终给予我细心的指

导和不懈的支持。两年来刘老师不仅在学业上精心指导,同时还在思想和生活上

给了我很大的关心和帮助,在此向刘铎老师表示诚挚的谢意和崇高的敬意。

在此,我还要感谢张志清、甄浍同学,正是由于你们的帮助和支持,我才能

克服一个个困难和疑惑,直至本文JlI页N完成。同时也感谢项目开发组的张磊、常

群等同事,他们在项目的设计与开发过程中,给予我细心、全面的指导。最后我

还要感谢家人,他们的理解和支持使我能够在学校专心完成我的学业。

引言

1 引言

在本章中主要介绍了项目的选题来源,以及手机网上商城的发展现状和产品

目标,最后介绍了论文的主要工作和论文的结构安排。

1.1研究课题来源

本次毕业设计的研究课题(基于Android系统手机网上商城)来自一个实际的

商业项目,该项目由北京洋浦科技有限公司和北京童壹库网络科技发展有限公司

合作开发。童壹库网络科技发展有限公司其营销策略也同各大B2C网站一样拥有

童一库官网,为其主要盈利模式。开发手机版网上商城目的在于进一步占领市场,

吸引更多的消费人群。

1.2项目简介

本项目虽是为童一库开发的手机版网上商城,但是维护却是由洋浦科技公司

与童一库网络科技公司共同完成,两家公司共享用户信息。所有的商品信息由童

一库科技公司提供给洋浦公司,客户端都是直接与洋浦科技公司服务器交互的,

只有用户注册和订单生成需要洋浦科技公司服务器与童一库网络科技公司服务器

交互,并且只有童一库网络科技公司服务返回给洋浦科技公司服务器成功信息,

洋浦科技公司服务器才能返回给客户端用户注册成功与订单提交成功信息。

1.3项目背景

随着网络购物被越来越多的人所接受,第三方支付工具的飞速发展,中

国网上购物市场规模越来越大。根据中国互联网信息中心CNNIC(China Intemet

Network Information Center)发布的《第28次中国互联网络发展状况统计报告》

显示,截止2011年6月底,我国网民规模达到了4.85亿,其中手机用户为3.18

亿。手机购物必然会成为继网站购物后又一种比较流行的购物方式。手机购物具

有操作方便、简单的特点,而且经过多年的发展,第三代数字通信(3G)技术得

到了广泛的接受,它为移动终端用户带来了更快的数据传输速率,这就更加推动

了手机必然会成为又一流行购物渠道。

北京交通大学专业硕士学位论文

word文档 可自由复制编辑

现在各大电子商务网站都拥有功能与自己网站商城一样的手机客户端软

件,消费者可以通过手机快速地进入商城,购买到自己喜爱的商品。现在的

智能机平台主要有:塞班(Symbian)操作系统为诺基亚手机采用的操作系统;

Mac OSX为苹果IPhone手机专用系统;Windows Phone为微软在手机领域的

优秀系统;BlackBerryOS为黑莓智能手机;Android为Google推出的操作系

统。根据权威机构数据统计,截止到2011年底,Android手机份额在国内市

场到达68.4%,并且其占有率仍处于上升趋势,因此我们选择了Android手机

操作系统这一开发平台。针对自己的电子商务网站打造属于自己的手机客户

端购物软件,开发一款基于Android操作系统的手机商城客户端软件就是在

这种背景应运而生。

1.3.1产品目标

本产品借鉴了市场上其他类似的优秀软件,实现了某一品牌商品的手机

客户端商城。用户登录该手机客户端商城后可以实现同登录PC机网站商城一

样的功能,完成网上购物的需求。本系统所具有功能性目标有:促销信息展

示、商品信息展示、购物车功能、订单处理功能、收藏夹功能、用户账户管

理、用户收货地址管理、用户订单管理。系统的非功能性目标有:界面统一

友好、使用操作方便、系统运行稳定可靠、响应速度快。

1.3.2国内现状

现在国内各大B2C网站(淘宝、京东、当当)都用有自己对应的手机客

户端软件,用户登录这些网站也都能下载不同手机平台的软件。它们开发这

些软件的原因就是想抓住手机网上购物的消费者,进一步提高其市场的占有

率。这种针对某一商城的手机客户端软件也逐渐被消费者所认可,有越来越

多的人都过手机来购物,毕竟,手机购物的遍历性要远远高于PC机上购物的

便利性。本软件也是在这种背景下开发的,该软件同这些大型的网站的手机

客户端相比,可以让用户很快就找到某品牌发布的新商品,具有针对性强、

便于用户的特点。

1.4个人主要工作

在洋浦科技有限公司半年的实习中,本人从事工作主要是系统后台设计

2

引言

和开发,在Android手机商场客户端开发过程中本人负责后台系统的搭建、

设计以及承担服务器端系统接口的实现,此外做了一些手机客户端界面开发

工作。在这期间深入学习了Android手机操作系统相关知识、Android手机客

户端软件界面开发、SSH框架搭建与设计、数据库设计、客户端与服务器后

台通信实现、设计模式等。在本系统的开发过程中,对这些理论知识进行了

进一步深刻的理解和运用。

Andoid手机客户端商城为消费者提供了购物的另一种途径,对于商家抢

占市场、扩大购买人群有着重大的意义。本论文描述了Android手机客户端

商城设计和实现,主要内容如下:

(1)项目需求分析

结合项目需求以及与商家的沟通,确定了系统软件的需求。

(2)后台服务器端

针对需求,首先定义出了与商家服务器之间同步数据的接口,确定数据

传输格式。其次结合客户端功能需求,定义出了客户端与服务器端的通信接

word文档 可自由复制编辑

口。搭建服务器端的开发环境,从需求文档中抽象出所有实体类进而进行数

据库设计,最后开发出文档中定义好的业务逻辑接口。

(3)客户端实现方案。

确定好各个界面的功能需求,开发对应的客户端界面以及确保与服务器

间接口通信正常。

(4)针对系统进行调优,使系统更加高效、稳定地运行。

(5)整合系统,通过验收。

1.5论文组织结构

按照软件开发的生命周期过程,将整个论文分成了六个章节。

第一章,引言,主要介绍了论文课题的研究背景目的及意义、国内外发

展情况和论文的主要内容。

第二章,系统涉及的关键技术,主要介绍系统在实现过程中用到的关键

技术以及在本项目的应用。

第三章,需求分析,主要介绍了论文项目的需求分析,应该实现的功能

点。

第四章,系统总体结构,主要介绍了系统的整体框架与设计方案。

第五章,系统实现,主要介绍了系统的实现过程。

第六章,结论,总结整个论文的工作内容

北京交通大学专业硕士学位论文

4

系统涉及的关键技术

2系统涉及的关键技术

本章节主要介绍了系统实现过程中需要用到的一些相关技术,主要包含

两方面:客户端和服务器。服务器主要用到的是SSH架构相关技术,客户端

用到的是Android应用程序开发技术。

2.1 注解在SSH框架中的应用

注解(Annotation)的应用减少了程序代码量,缩短了项目开发周期。注

解的语法比较简单,可以用@符号来表示。

2.1.1 Hibernate中注解应用

注解技术在Hibernate中的应用:在JDK5.0推出Annotations后,

Hibernate也开始支持Annotations。

每一个持久化POJO类都是一个实体bean,这可以通过在类的定义中使

@Entity注解来进行声明。@Table是类一级的注解,通过@Table注解可以为

实体bean映射指定表(table),目录(catalog)和schema的名字。如果没有

定义@Table,那么系统自动使用默认值:实体的短类名。@Column注解可

将属性映射到列,使用该注解来覆盖默认值【8】。本系统的实现中将这些注解

定义在get方法上。

在实体属性一级使用@ManyToOne注解来定义多对一关联,实体间的一

对多的关系使用@OneToMany注解来定义。本系统中一个商品对应着多个图

片,因此建立Product实体与ProductMapplmage实体之间的关系,需要在

Product类中的 getMapplmageSet方法中定义@OneToMany,

ProductMappImage类中定义@ManyToOne,其中@JoinColumn作为可选的,

列名为:主体的关联属性名+下划线+被关联主键列名,这里关联的属性是

word文档 可自由复制编辑

product,Product的主键为id,故添加的列名为product

id。

2.1.2

Spring中注解的应用

在一个稍大的项目中通常会有上百个组件,如果都使用XML的bean定

义来配置组件的话,显然会增加配置文件的体积,查找及维护也不方便。

北京交通大学专业硕士学位论文

Sprin92.5为我们引入了组件自动扫描机制,它可以在classpath下寻找标注了

@Service、@Repository、@Controller、@Component注解的类,并把这些类

纳入Spring容器中管理,使用扫描机制。本系统正是使用这种扫描机制:

,其中base—package

指定需要扫描的包,它会扫描指定包中的类和子包里面类【l 21。@Service用于

标注业务层组件,@Repository用于标注数据访问组件,即DAO组件。

2.2

Quartz技术

系统中常常有些需要自动执行的任务,这些任务可能每隔一段时间要运

行一次,也可能在指定的时间运行,这里就需要用到任务的自动调度。借助

于开源框架Quartz我们既可以实现简单的任务调度也可以实现复杂的任务调

度。

2.2.1

Quartz运行的基本属性

Quartz是opensymphony组织提供的一种任务调度框架,具有简单、易用

特性的任务调度系统。借助于Cron表达式,Quartz可以支持各种复杂的任务

调度110J。

Quartz提供两种作业存储方式:

第一种类型叫做RAMJobStore,利用内存来持久化调度程序信息。这种

作业存储类型最容易配置和运行。对于许多应用来说,这种存储方式已经满

足要求了。然而,调度信息保存在JVM的内存中,一旦程序中止,所有的调

度信息将被丢失。

第二种类型称为JDBC作业存储。需要JDBC驱动程序和后台数据库保

存调度程序信息,由需要调度程序维护调度信息的用户来设计。

2.2.2

Quartz中的触发器

Quartz允许作业与作业调度分离,Quartz使用触发器将任务与任务调度

分离开,Quartz中的触发器用来指定任务的被调度时机,其框架提供了一系

列触发器类型,以下两个最常用:

Simple Trigger:主要用来简单的调度。例如,如果需要在给定的时间内

重复执行作业,或者间隔固定时间执行作业,可以选择Simple Trigger类似于

6

系统涉及的关键技术

JDK中的Timer。

CronTrigger:CronTrigger用于执行更复杂的调度。该调度器基于

Calendar.1ike。例如我们需要在星期二和星期三的上午10点调度某个任务时,

应该使用CronTrriger。

word文档 可自由复制编辑

Cron表达式是一个字符串,字符串以5个或6个空格隔开,分成6个或

者7个域,每个域代表一个时间域。Cron表达式有两种语法格式:[Seconds

Minutes Hours Day Month DayofWeek Year]这种包含7个域的表达式,还有包

含6个域的Cron表达式[Seconds Minutes Hours DayofWeek Month Year]。

2.2.3

Quartz中的调度器

调度器将任务与触发器关联起来,一个任务可以关联多个触发器,一个

触发器可以用于控制多个任务。当一个任务关联多个触发器时,每个触发器

都被激发时,这个任务都会被调度一次;当一个触发器控制多个任务时,此

触发器被触发时,所有关联到该触发器的任务都被调度。

Quartz的调度器由Scheduler接口具体体现。该接口声明的具体方法如下:

Void addJob(JobDetail

j obDetail,Boolean replace):将给定的JobDetail实例添

加到调度器中。Date scheduleJo(JobDetailjobDetail,Trigger trigger)·将指定的

JobDetail实例与给定的trigger关联起来,即使用trigger控制该任务。Date

schedule(Trigger trigger):添加触发器trigger来调度作业【1|。

2.2.4

Quartz在系统中的应用

由于涉及到更新商品库存信息,可能有新的商品进入库存,有的商品需

要下架,Spring在Quartz基础上提供了很好的调度抽象,本项目中用

MethodInvokingJobDetailFactoryBean来封装,在配置文件中定义如图2-1所

不o

</beari>

class=”org.springframework.scheduling.掣uartz.毖0五。矗互托、船童i五蓼0a魄七!邑i王童毫ctoryBean”>

<娶roperty na/llel”targe∞4ethod’’><譬矗三譬e>sync</vaiue></v:。per乞y>

</bean>

图2—1

Spring中quartz配置示意图

Figure2-1

Schematic diagram of quartz configuration in Spring

北京交通大学专业硕士学位论文

我们定义的任务bean为quartzService,任务调度时执行bean中名为sync

的方法,然后需要在定义一个触发器,将我们创建的任务与触发器关联起来,

定义如下,它表示每天凌晨3点都会运行我们的建立任务中的sync同步方法。

《蚕::;卺:艺了Y.P.IT。.@----”,o丑oe:宣_:£三”》《:譬£3。e暑暑=”=o!三::::舅oo置口盘:五voJ;ci£参”/></Lro爹雹=ej7》

word文档 可自由复制编辑

《薹::o多搴::!。己a:毫e=’’cronExpression’7》《’”a!ue>0

0 3

⋯ *

<。7V丧兰_::三量>

《,‘忽主墨冕>

图2-2

自定quartz任务示意图

Figure2-2

Schematic diagram of custom

quartz

mission

2.3

SSH框架相关技术

对于Java

EE应用框架,有很多,目前最流行的就是Spring、Hibernate

和Struts的组合。但是对于Java EE应用大致都可以分为如下三层:表现层、

业务逻辑层、数据持久化层。

2.3.1

SSH应用框架模型

SSH作为轻量级Java EE框架,它以Spring IoC容器为核心,承上启下:

其向上管理来自表现层的Action,向下管理业务逻辑层组件,同时负责管理

业务逻辑所需的DAO对象[61。SSH轻量级Java EE架构模型如下:

冬蘩戮秽麟蒸篓瓣l鞭鬻爹毋粼湖燃麓夔蘸蘸麟嗲

图2-3 SSH应用框架示意图

Figure2-3

Schematic diagram of SSH

application framework

8

系统涉及的关键技术

2.3.2 SSH框架DAO组件技术

DAO组件是整个应用系统进行持久访问的重要组件,每个JavaEE应用

的底层实现都离不开DAO组件的支持。DAO组件提供了持久化对象基本的

CRUD操作。而在DAO接口里则对DAO组件包含的各种CRUD方法提供

了声明,使用DAO接口的原因是:避免业务逻辑组件与特定的DAO组件耦合。

本系统中采用了Hibernate的范基类来实现一个泛型DAO,将通用的方

法抽象到此基类中。这个泛型DAO封装了原生Hibernate API操作【3 J,实现

了对不同POJO对象进行操作,解决了常用的Crud。我们就可以在Service

类中创建出对应的DAO组件。在具体使用DAO组件时,本系统采用Spring

的自动注入功能,创建出需要的DAO组件。

2.4 Android相关技术

Android是基于Linux内核的软件平台和操作系统,早期由Google开发,

后由开放手机联盟开发。它采用了软件叠层的架构,主要分为三部分。底层

以Linux内核为工作基础,只提供基本功能;其他的应用软件则由各公司自

行开发,以Java作为编写程序的一部分。

word文档 可自由复制编辑

2.4.1 Android应用技术框架

Android会同一个核心应用程序包一起发布,应用程序包括E.mail客户

端、SMS短消息程序、地图程序、浏览器、联系人管理程序等,所有的程序

都是用JAVA开发的。

开发者完全可以访问核心技术所使用的API框架。该应用程序架构用来

简化组件软件的重用:任何一个应用程序都可以发布它的功能模块并且任何

其他的应用程序都可以使用其所发布的功能模块【1引。所有的应用程序都由一

系列的服务和系统组成,包括:

一个可扩展的视图(View)可以用来建立应用程序,包括列表(List)、

网络(Grid)、文本框(Text boxe)、按钮(Button),甚至包括一个可嵌入的

Web浏览器L4】。

内存管理器(Content Providers)使得应用程序可以访问另一个应用程序

的数据(如联系人数据库),或者共享它们自己的数据。

一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字

北京交通大学专业硕士学位论文

符串、图形和分层文件(Layout

file)。

一个通知管理器(Notification

Manager)使得应用程序可以在状态栏中

显示客户通知信息。

一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提

供常用的导航回退功能‘71。

2.4.2

Android项目的目录结构

Android项目在Eclipse中有6个文件夹,如表2.1所示,其中资源是

Android应用程序不可或缺的部分。资源是你想包含和引入到应用程序里面的

一些外部元素,如图片、音频、文本字符串、布局、主题等。每个Android

应用程序包含一个资源目录(res/)和资产目录(assets/),但资产不经常被使

用,因为它们的应用很少。仅在需要读取原始字节流时才需要保存数据在

“assets/"目录u¨。“Res/"和“assets/”目录均在Android项目树的顶端,和

源代码目录(src/)处在同一级上。资源和资产从表面上没多大的区别,不过

在总体上,存储外部内容时资源用得更多。真正的区别在于任何放置在资源

目录里的内容可以通过应用程序的R类访问,这是被Android编译过的。而

任何存放在资产目录里的内容会保持它的原始文件格式,为了读取它,必须

使用AssetManager来以字节流的方式读取文件,所以保持文件和数据在资源

(res/)中方便访问【l 6|。

表2—1 Android项目目录层次结构

i愚黧㈣麓

嚣羹簟举鬻㈣《i蒌萋黧薹薹纛篓薹 雏蓊薹薹纂薹鎏墓

src/

源代码目录

gen/

系统自动生成代码目录

word文档 可自由复制编辑

Androd2.2/

开发时提供的核一l=^,jar包存放目录

assets/

资产目录,“assets/”目录下的资源文件不会在R.java自动生成

res/

存放图片、布局字符串等资源

AndroidManifest.xn'll

Android应用程序的配置文件

Android手机网上商城需求分析

3 Android手机网上商城需求分析

随着手机用户的日益增多,手机网上购物必然成为一种很好的营销模式。

现在各大电子商务网站都拥有自己的手机客户端,消费者不仅可以通过PC

机购买物品还可以通过手机客户端来购买商品。针对自己的电子商务网站打

造属于自己的手机客户端购物软件,成为商家的一个选择,本系统正是在这

种背景应运而生。

本系统业务逻辑模块分为用户登录注册、促销商品信息展示、商品信息展示、

购物车、订单和其他功能模块,系统功能模块图3.1所示,该章节将对系统业务逻

辑进行详细分析。

图3-1系统模块结构示意图

Figure3-1

Schematic diagram of system Module Structure

3.1 业务流程

本系统的购物流程如图3.2所示。用户进入首页后,界面从上到下依次

是新品图片、促销信息,用户点击进入对应的商品列表。每个界面最下面的

标签中有个“分类’’标签,点击此标签进入Tab页,Tab页有四类:男孩、

北京交通大学专业硕士学位论文

女孩、配饰、麻豆秀,对应于各自的商品列表。用户在商品列表界面可以查

看商品详情,此时可以加入购物车也可以加入收藏夹,若加入购物车可以进

入结算中心,提交自己的订单,完成一次购物旅程。

图3-2系统购物流程示意图

Figure3-2

Schematic diagram of system

shopping process

3.2业务模块功能需求

本小节介绍的业务功能需求以客户功能用例为标准进行讲述的,总共分

为六个功能模块需求讲述:注册登陆模块功能、促销商品模块功能、商品展

示模块功能、购物车模块功能、订单模块功能、其他功能模块功能,系统的

功能用例如图3.3所示。

3.2.1注册登陆功能需求

注册功能。注册账号,支持邮箱地址,邮箱地址错误、邮箱地址存在提

示相应的信息。密码长度为6-16位,输入长度不对时系统同样给出提示信息。

12

Android手机网上商城需求分析

用户点击取消注册按钮会返回首页。

word文档 可自由复制编辑

登录功能。登录的验证都需要通过商家服务器端给出返回结果。输入账

号为空、密码为空都会给出提示信息。在登录界面有用户注册按钮,用户点

击后进入注册界面。用户点击登录取消按钮返回首页。

客户

图3-3系统功能用例图

Figure3-3

Usecase of system functions

3.2.2促销商品模块功能需求

促销产品模块功能主要包含:首页促销信息展示和促销商品图片列表。

促销信息初始入口是在软件的首界面,也就是软件启动完成后进入的界面。

首页促销信息展示。首页的促销信息展示是以图片和促销文字两种表现

形式来展现的。促销产品图片在这里最多显示5个,在图片上有左右滑动指

示图标,该图标为静态图,无动作处理,此外图片滑动时会有提示,这里以

亮点作为提示标志,有几幅图就会有几个点,用户点击每幅图片后进入促销

商品图片列表。促销文字以列表形式显示的,这里最多显示10行,用户点击

每行进入对应的促销商品图片列表界面。

促销商品图片列表界面。促销商品图片列表,每行3个图片显示,屏幕

支持上下滑动。用户点击图片进入商品概要信息界面。

北京交通大学专业硕士学位论文

3.2.3 商品信息展示模块功能需求

商品信息展示模块主要包含的功能:商品分类、商品列表项、商品概要

信息展示和商品详细信息展示。

商品分类。一级分类显示4个,包括男孩、女孩、配饰和麻豆秀。二级

分类以类型图标和分类列表名称显示,用户点击二级分类图片可以进入该分

类下的商品列表界面。

商品列表项。商品分类列表项分为三种排序,新品排序按钮,点击后最

新产品排在上面;销量排序按钮,点击后产品销量从高到低排序(自上而下

显示);价格排序按钮,点击后产品价格从低到高排序。商品信息的显示包含:

商品图片,商品标题(支持换行显示)、商品价格和该产品拥有的颜色种类数。

商品概要信息展示。商品概要信息展示界面包含的信息有:

(1)商品展示图片(大图),支持左右滑动切换,点击进入商品详情

(2)商品展示图片数量及当前位置提示,有几个图就会显示几个点

(3)商品名称,超过长度则换行显示

(4)商品价格,支持显示售价、原价

(5)商品详情按钮,点击进入商品详情页面

商品详细信息展示。商品详细信息展示界面包含的信息有:

(1)产品展示图片(小图),支持左右滑动切换,点击进入商品概要页面

(2)产品展示图片数量及当前位置提示,有几个图片显示几个点

(3)产品名称,超过长度时换行显示,产品编号、产品价格

(4)产品可选颜色,有几种列几种(调用系统默认列表样式,标题:颜色)

(5)产品尺码,有几种列几种(调用系统默认列表样式,标题:尺码)

(6)放入购物车按钮,点击后将此产品放入购物车,放入成功后,显示“该

商品已成功添加到购物车中!”,购物车数字+1(为0时不显示),同一

件商品可以重复放入购物车,在该件商品的数量上累加

word文档 可自由复制编辑

(7)加入收藏夹按钮,如果用户没登录,点击后切换到用户登录页面。用

户登录成功后,返回商品详情界面,提示用户收藏成功,显示“该商

品已成功收藏!”;如果用户已经登录,直接提示用户收藏成功,显示

“该商品已成功收藏!”。同一件商品只能收藏一次,但每次收藏该商

品时都显示收藏成功提示,收藏列表中只显示一件。

Android手机网上商城需求分析

3.2.4购物车模块功能需求

购物车模块主要包含三部分功能:商品加入购物车、编辑购物车、购物

车商品信息展示,其功能用例如图3—4所示。

&

、@

\\ //

\@

用户

图3-4购物车模块用例图

Figure3—4

Usecase of shopping cart module

购物车商品信息浏览。进入购车商品信息浏览界面有两个入口,一个是

在商品详情界面用户点击“加入购物车"按钮,另一个是在更多管理功能界

面点击购物车选项。购物车商品信息包括:

(1)数量总计,购物车内的商品的总的数量

(2)商品总金额,购物车内所有商品的一共售价金额

(3)运费,全国运费10元,慢59元免运费

(4)优惠活动,手机下单优惠活动,满100立减10元,满200立减20元

(5)金额中总计=商品总金额+运费一优惠金额

(6)商品信息,包括图片、名称、尺码、颜色、数量、单价、小计

(7)手机促销活动提示

(8)服务信息,以静态图片显示

编辑购物车。编辑购物车的入口在购物车商品浏览界面,用户点击“编

辑”按钮即可进入购物车编辑界面。该界面显示的内容和购物车浏览界面显

示的内容相似,不同的是该界面的是商品的数量是可以编辑的,并且该购物

车内的商品是可以删除的。购物车编辑页面的商品数量编辑框,用户点击后

可以设置商品的数量,但是不可以超过999或者等于0,若果在此范围内,

给出提示信息“您输入的数量不在允许范围(卜999)内”。

北京交通大学专业硕士学位论文

3.2.5订单模块功能需求

订单功能模块包括:结算中心、订单提交、支付方式选择、送货时间选

择,订单模块是本系统最关键的部分。

结算中心。用户进入结算中心需要从购物车界面点击“去结算”按钮进

入,而且只有登录的用户才可以进入结算中心。结算中心界面包含的信息有:

(1)订单总计金额

(2)设置收货人信息

(3)设置支付方式

word文档 可自由复制编辑

(4)设置配送时间

(5)设置发票信息

(6)填写留言信息

(7)使用礼品卡、赠券等

(8)购买产品的明细

(9)积分及商品金额、运费核算信息

订单提交。用户在结算中心点击“提交订单”按钮后,进入订单提交流

程,若订单提交成功进入订单提交成功界面。该界面返回以下信息:订单号

(12位长度的数字组成)、需要支付金额、预计配送时间和订单提示。订单

提交成功后,用户可以单击“继续购物”按钮,页面进入商品分类界面,用

户可以继续购物。

送货时间方式选择。送货时间选择在用户提交订单前的结算中心选择,

这里初步定义的时间方式有:

(1)工作日、双休日与节假日均可送货

(2)只有双休日、节假日送货(工作日不用送货)

(3)只有工作日送货(双休日、节假日不用送)

(4)学校地址(该地址白天没人,请尽量安排其他时间送货)

3.2.6其他功能模块功能需求

其他功能模块主要包括:账号管理、我的订单管理、收货地址管理、商

品收藏夹管理,此外,本客户端软件提供软件使用帮助说明书、用户反馈、

版权声明。

账号管理。用户登录后可以进入账号管理界面,若用户为登录进入登录

界面。账号管理界面显示该账号基本信息,这些信息包括账号、等级、积分、

16

Android手机网上商城需求分析

账户余额;用户可以在该界面修改自己的密码设置;点击“退出登录”按钮,

进入登录页面。

订单管理。订单管理主要是用户查看自己提交的订单信息,用户同样需

要登录后才可以查看。用户一开始进入订单管理界面,展示给用户是三种类

型订单。这三种类型的订单包括“未送达订单”、“一个月内”和“全部订单”,

每类的排序规则按订单生成时间进行排序,最近的订单排在上面。该界面上

显示的是订单的概要信息,包括订单编号、总价、生成时间和状态。用户在

订单管理界面点击每一条订单后可以进入订单详情界面。订单详情界面包含

订单的收货信息和订单的物流详情,订单的收货信息显示订单编号、收件人、

联系电话、收货地址和邮编等,订单的物流详情包括订单的状态、送货方式

和付款方式。

收货地址管理。收货地址管理提供给用户添加收货地址、编辑收货地址

以及删除收货地址功能。用户点击收货地址管理选择项时进入的是收货地址

列表项界面,该界面显示的是用户自己添加的所有收货地址列表。每一条收

货地址中有一个区域地址域和一个编辑地址域,用户点击区域地址域可以将

该地址设置为默认的收货地址,点击编辑地址区域可以进入收货地址详情界

面,此外添加收货地址功能也是在收货地址列表项界面提供的。用户在收货

地址详情界面看到的信息包括:收货人姓名、手机号码、固定电话、所在地

区、邮编和详细地址。该界面提供给用户删除收货地址功能,点击收货地址

word文档 可自由复制编辑

列表标签可以返回到收货地址列表界面。

商品收藏夹管理。收藏夹商品信息也必须是登录用户才可以查看,用户

一开始进入的是收藏夹商品列表界面,展示的商品信息包括商品图片、商品

名称、商品价格和颜色种类数。收藏夹商品列表界面的最上角有个编辑按钮,

点击该按钮后进入编辑收藏夹界面。收藏夹编辑界面的各商品信息展现形式

同收藏夹列表界面一致,但在每个商品后面出现“删除”按钮,用户点击此

按钮可以删除收藏的此商品。

用户反馈。用户反馈界面提供给用户一个反馈意见输入框,内容在500

字以内,用户在此填写自己意见。用户填写自己的邮箱名,这个为可选项,

商家会将反馈结果发送到这个邮箱内。用户点击用户反馈页面上的“更多”

标签项,回到更多选项界面。

版权声明。介绍该软件版权所属,该版权声明单独在一个界面中进行展

示。

北京交通大学专业硕士学位论文

18

Android手机网上商城系统总体结构

4

Android手机网上商城系统总体结构

本章是系统实现设计部分,系统各个模块的实现都是参照设该设计实现

的,主要讲述了系统的总体框架、客户端与服务器通信设计、业务逻辑设计、

持久层设计和后台接口设计五部分。

4.1系统总体框架

本系统总体结构主要由两部分构成:客户端和服务器端,客户端是建立

在Android手机操作系统及其硬件之上的,服务器端是建立在J2EE应用服务

器、Web服务器和数据库库服务器之上的,系统体系结构如图4—1所示。

针对本系统抽象出表现层、逻辑层、持久化层,通信层,分层设计的理

念可以降低各个模块之间的耦合性,明确各个模块的职责,从而增强了系统

的扩展性。表现层,在本系统中特指Android客户端界面,它负责给用户呈现

直观的界面,用于接收用户的请求。通信层,作为表现层和逻辑层之间的纽

带,负责这两层之间的联系,具体来讲负责socket连接、组装数据、解析数

据等。逻辑层,在本系统中特指J2EE应用服务器,采用struts这一框架来处

理来自view层的请求,进行对应的业务逻辑处理。持久化层采用面向对象的

设计理念,通过Hiberante的orm映射来实现对数据的持久化处理。

i鬻嬲黪冀霪;溪薹瀛l麓溺滚滚戮溯缀磁磁嬲鞠豳豳

奄南勘

≮ 《 罅

图4一l 系统体系结构示意图

Figure4-1

Schematic diagram of system architecture

北京交通大学专业硕士学位论文

4.2客户端与服务器端通信设计

word文档 可自由复制编辑

本系统的实现需要客户端与服务器之间大量的交互,很多的业务逻辑功能实

现都是由客户端向服务器发送请求来完成的,因此客户端与服务器之间通信就显

得非常的重要。

4.2.1通信连接设计

该模块用于建立客户端与服务器端的连接,本系统中所有的通信都是基于

HTTP协议。借助于HttpClient这一框架,本系统在此基础抽象出通信连接工具类

HttpUtils。HttpUtils类提供了高效的、功能丰富的支持HTTP协议的API,通过调

用该类对应的API就可以方便的实现网络之间的通信。

客户端与服务器之间的通信模式:用户触发客户端的事件,客户端向服务器

相应的接口地址发起请求,建立起客户端与服务器端的连接,服务器端解析数据

包,获得请求的参数,调用对应的业务逻辑模块的方法得到客户端需要的数据,

数据处理模块封装好数据,服务器端返回数据包,客户端调用对应的数据解析方

法最终得到需要的数据。

4.2.2通信数据处理设计

本系统客户端与服务器端的数据通信格式选定为JSON格式。与传统的数据通

信格式XML来相比,JSON格式被选择原因有:JSON传送数据量少,XML包含

许多重复的标记字符,而JSON只包含系统需要的数据,因此使用JSON格式可以

减少下载流量;解码难度,在知道数据结构的前提下,解析JSON格式非常的方便,

程序员可以非常简单就可以得到想要的数据,而XML格式需要做的工作就要多一

些,额外要做一些遍历工作。本系统中所有接口的请求和返回结果都做了详细的

说明,JSON格式解析比较方便。

客户端向服务器端发送请求时的地址都是专一的,所以在请求数据包中不需

要表明需要调用哪个业务逻辑,数据包中要做的是定义好编码方式,本系统客户

端和服务器编码方式均为UTF.8。

确定好数据传输格式后,这里将数据封装处理过程做一个介绍。首先将数据

封装成JSONObject对象,将此对象数据转化成字节流,通过HTTP协议POST方

法将数据发送到服务器端,这是封装数据的过程。服务器端获取到字节输入流,

取到字节数据,将此字节数据转化成字符流,再转化成JSONObject对象,然后根

20

Android手机网上商城系统总体结构

据接口文档,解析这个JSONObject对象,最终获得需要的数据,这是解析数据过

程。

4.3业务逻辑设计

业务逻辑设计实现是系统的关键一步,良好的业务逻辑设计是系统实现的必

要一步。系统业务逻辑设计共包含六个部分:登录注册设计、促销商品模块设计、

商品展示模块设计、购物车模块设计、订单模块设计和其他功能模块设计。

4.3.1登录注册业务逻辑设计

本系统登录模块业务逻辑如图4-2所示,该模块实现了在商家网站和手机客

户端注册的用户登录功能。用户登录时会触发客户端向软件开发商服务器发送登

录请求,软件开发商服务器获取来自客户端用户密码和用户名。软件开发商服务

器将用户信息提交到商家服务器,商家服务器查询自己数据库来验证用户名和密

码是否正确,并将此信息返回给软件开发商服务器。软件开发商服务器根据商家

服务器返回的信息进行相应处理。返回错误信息时,软件开发商服务器会直接把

错误信息返回给客户端;返回正确信息时,软件开发商服务器会查询自己数据库

word文档 可自由复制编辑

注册表中是否有,若存在更新自己注册库表,若不存则向注册表中添加一条数据。

接下来,软件开发商服务器查询数据库的用户信息表,软件开发商服务器用户信

息表中不存在该登录用户的记录,则向该表中添加从商家服务器得到用户信息记

录,若存在,则更新用户信息表中数据。软件开发商服务器向客户端发送成功信

息,用户成功登录此系统。

服务器器端(软件

开发商)

证用户名

码是否正

家服务器)发送

HTrP请求

张槲否

否有此用声\、J

(软件开发/

\商)/7

商)从商家服务

器端获取用户信

图4-2登录业务逻辑示意图

Figure4-2

Schematic diagram of login business logic

腊丢

北京交通大学专业硕士学位论文

用户在客户端登录时,服务器提供处理客户端登录请求的接口设计如表4-1

所示,它将完成用户的登录请求,请求地址为user/userlogin.action。

表4—1用户登录接口设计

Table4-1 Interface design of user login

一娶Il£雌 i攀圣薯Ⅻ

+■器《z,o

一一’M州7““”

USemame

String

用户邮箱,以邮箱作为用户名

提交请求

password String

用户密码

errOr

String

错误信息,成功时返回“0”,否则返回错误信息

userid

String

用户的id,服务器端自动生成。注册失败返回“”

USemanle

String

用户名

word文档 可自由复制编辑

返回结果

level

String

等级

point

int

积分

balance

String

账户余额

本系统注册业务逻辑如图4—3所示,可以实现用户注册功能。用户注册时会

触发客户端向软件开发商服务器发送注册请求,软件开发商服务器获得用户填写

的用户名和密码,并保存到用户注册信息表中。软件开发商服务器将用户填写的

用户名和密码提交到商家服务器中,商家服务器返回软件开发商服务器是否注册

成功信息。若注册成功,软件件开发商服务器得到的是该用户注册后商家初始化

的信息(积分、等级、账户余额等),软件开发商服务器存储这些信息到用户信息

表中,并向客户端发送这些信息;若失败则软件开发商服务器返回给客户端失败

信息。

向服务器(软件开

发商)返回结果

服务器端(商家)

家服务器)发送

HTTP请求

保存注册信息

图4-3注册业务逻辑示意图

Figure4-3

Schematic diagram ofregister business

logic

用户注册时,服务器处理客户端注册请求的接口定义中的提交请求和返回结

果与用户登录接口设计相同,请求地址为为user/user_register.action。

一、\—一一一——一一~—一一一

,\

一注

百件一

一服

Android手机网上商城系统总体结构

4.3.2促销商品模块业务逻辑设计

本模块提供的是商家给顾客提供的促销产品信息展示,其业务流程如图4—4

促销商品模块业务逻辑示意图所示。

图4—4促销商品模块业务逻辑示意图

Figure4-4

Schematic diagram ofpromotional merchandise module business logic

用户进入首界面后,不论登录与否都可以查看促销信息。首界面中有两个入

word文档 可自由复制编辑

口来查看促销产品页:一个是图片形式;一个是促销文字形式。用户点击图片或

者文字时都会进入对应的促销商品分类中,也就是促销产品页。促销产品页中表

现是以商品图片的形式,点击对应的图片进入具体商品对应的信息,在本系统中

指的是商品详情1界面。商品详情1界面的信息比较简单,更为具体的商品的信

息用户点击“商品详情”按钮。商品详2界面中对应两个操作:加入收藏夹和加

入购物车,这两个操作用户必须登录才能完成,若用户没有登录则会进入登录界

面,登录后返回页面详情2界面。

表4-2获取首页促销信息接口设计

Table4-2 Interface design of home promotions

∞∞i#;;-《ii

⋯鬻囊嚼蒸一一《《。。

i攀一1。

i。I|||;i

首页促销信息显示多少条:如果pagesize大于实际促销信

int

提交请求

pagesize

息数量,按照实际大小返回。

String

错误信息,成功时返回“0”,否则返回错误信息

e1170r

主页上的促销信息,至多10个

salearray JSONArray

i2黧!iiiiiiiii、ii÷i:

⋯。is

il||;|ii

返回结果

促销文字 text

促销信息id saleid

String

图片url

imageurl

String

北京交通大学专业硕士学位论文

用户在首界面中获取促销信息时需要客户端与服务器之间交互,服务器提供

处理客户端获取首页促销信息接口设计如表4—2所示,该接口会从服务器获取到

首页促销信息,包括促销信息的图片和促销信息文字,客户端请求的地址为

product/pro_getSalepage.action。

表4—3获取某一类促销商品接口设计

||||||¨;囊瀵:;黍l 蒸童羹鼗l荔 戮I||I灏戮 §鬻l鬻||||||||||||||||i|||囊鬻鐾1|||1鬻鬻鍪雾鬻羹霪鬻蒺戮攀瀵蒺戮囊鎏鋈麟

提交请求

saleld

word文档 可自由复制编辑

String 促销信息id

errOr

String

错误信息,成功时返回“0”,否则返回错误信息

saleid

String

促销商品列表id

productArray JSONArray

促销商品

返回结果

戮鬻i豢攀鬻鎏戮||||糕嚣鬻婺鬻赫蠢黛鬻滋i鬻瓣颡鞠鬟粪攀粪鬃鬻攀瀵鬻豢鬻鬻蒸

productid

String

商品id

imageurl

String

图片url

用户点击首界面图片或者文字时都会进入对应的促销商品分类中,服务器提

供处理客户端获取某一类促销商品接口设计如表4-3所示,客户端请求的地址为

product/hotproducts.action。

4.3.3商品展示模块业务逻辑设计

本模块提供了以下业务逻辑实现:商品分类、商品信息展示,其业务流程如

图4—5所示。

开始

男孩

女孩 配饰

麻豆秀

。。。’‘’”_。。。。。。。。。。__。。。。。。。-。-_'●——

商品图片展示界

商品详情1界面卜—一商品详情2界而卜———叫

结束

图4-5商品展示模块业务逻辑示意图

Figure4—5

Schematic diagram of product modules business logic

24

Android手机网上商城系统总体结构

除启动界面外,每个界面底层都有个四个标签,用户点击“分类”标签就会

进入到商品分类列表。商品分类列表中有四个标签选择项:男孩、女孩、配饰和

麻豆秀,用户点击对应标签进入相应的产品列表项。用户点击“麻豆”标签时用

户看到的是商品图片,图片以旋转的方式展示给用户:用户点击其他三个标签后

进入到商品列表项,这里商品列表项以三种规则来显示商品信息。商品列表项三

种规则为:新品排序、价格排序、销量排序。点击新品排序,商品列表以上商品

word文档 可自由复制编辑

上架时间先后排序:点击价格排序,商品列表以价格从低到高排序:点击销量排

序,商品列表以产品销售量从高到低显示。

用户进入某一类商品列表界面时需要客户端与服务器之间交互,服务器提供

处理客户端获取商品分类列表接口设计如表4—4所示,客户端请求的地址为product

/productlist.action。

表4-4获取商品分类列表接口设计

Table4-4 Interface

design of access

to

goods classification

list

黼一

。羹塞客j鬻 戮鬻羹鼗i’

‘2蒸一

j。1:11;8一誉l I||I|||赣羹+

ij

==_=

cateid

String

分类id

sorttype

int

排序类型(O:新品排序,1:销量从高到低,2:价格从低

提交请求

到高)

CUrSOr int

分页标示。0为起始,否则填服务器返回值

返回商品数量;如果pagesize大于实际数量,按照实际

pagesize

hat

大小返回

errOr

String

错误信息,成功时返回“0”,否则返回错误信息

返回当前读取到的位置,客户端下次可能会以该位置为起

CUrSOr int

始点获取分页显示;返回一1表示服务器已经没有数据

productarray JSONArray

商品列表

, 。㈦∞∞骥、

“{

。!Ⅸ涸睡翻墓疆珏§醚夔4灏i懑i瓣§匿,蓦蠹黧g 。。j

word文档 可自由复制编辑

一※⋯

productid String

商品id

返回结果

n锄e

String

商品名称

price String

商品价格

marketprice String

商品市场价格

colorcount int 颜色数量

imageurl String

图片url

storage

int

库存状态(0:缺货,1:现货)

用户进入商品分类界面时需要客户端与服务器之间交互,服务器提供处理客

户端获取分类列表接口设计如表4—5所示,客户端请求的地址为product

25

北京交通大学专业硕士学位论文

/categorylist.action。获取商品概要信息时同样需要客户端向服务器获取商品概要信

息,该请求接口设计如4-6所示,客户端请求地址为product/productshow.action。

表4-5获取分类列表接口设计

撼_

溲!_|霍E撩

蘩溺薹”⋯“

一;一”

;’⋯滚麓i=熏戮 蘸i攀鬓鬟I||《镳纛i

level

Int

分类层级,第一级分类为0,第二级为1,依次类推

提交请求

parenfid String 上一级分类id,如果是第一级分类,该项为0

errOr

String

错误信息,成功时返回“0”,否则返回错误信息

catearray JSONArray 分类列表

“∥

一一⋯t‘■《。黜㈦目《

”s%ili:iiiii搿E 。toj

8§, 。黼。獬照鬻躺曩j皴目lIl穗蓑

8。

。;。 露

word文档 可自由复制编辑

cateid

String

分类id

返回结果

parentid String 上一级分类id

level

im

分类层级

n锄e

String

分类名称

imageurl String 图片ud,如果没有图片,此项为空

表4—6获取商品概要信息接口设计

#

瓣i蘧重藿瀵攀!

i爨羹旗藜戮 缫一瓣a黧黛。一鬻n

i

i;鬈≥麟i li缀ii攀

productid

String

商品id

提交请求

imgurl

String

图片地址(用户看到第一张图片是促销产品显示的图片)

errOr

Siring 错误信息,成功时返回“0”,否则返回错误信息

product JSONObj 商品格式

《I|;|I荔嚣

。,。,蒌谴溉鬻藕j纛錾恭鬻;’

。.

。:。|||||8

li

productid

String

商品id

n锄e

String 商品名称

返回结果

price String 商品价格

marketprice

String 商品市场价格

imagearray JSONArray

word文档 可自由复制编辑

图片数组

『棚窘班嘲|物酬l瓣骥鳃瓣蓦参蛮黧攀‘

、⋯一。。。錾鏊一

篓薹。。霪

i、

imageurl String 图片url

商品信息展示时,用户可以通过商品详情l界面和商品详情2界面来获得商

品信息的展示,商品详情1界面获得商品概要信息,商品详情2界面获得商品具

Android手机网上商城系统总体结构

体的信息。获得商品详细信息时客户端向服务器获取商品详细信息的请求,该请

求接口设计如表4—7所示,每次在客户端界面上展示lO个商品信息,客户端请求

地址为product/productdetail.action。

表4—7获取商品详细信息接口设计

Table4—7 Interface

design of product details information

麓÷、

黛薰旗

蓑鍪’”雾 一

。 。蘧i瑟

i鬻

i一。㈧E

提交请求

productid

String

商品id

errOr

String

错误信息,成功时返回“0”,否则返回错误信息

product JSON0bj

商品详情

黧囊一

i豢i ‘。”i,⋯。!i羹黛蠹麟鏊髓菇警精穗或鬈

productid String

商品id

productnum String

商品编号

paremid String

所属分类id

n锄e

String

商品名称

word文档 可自由复制编辑

price String 商品价格

marketprice

String

商品市场价格

colorarray JSONArray

所有商品颜色

㈣锄墨零黪簿’黑黧爨零黪篆黧黪篓繁黪囊i囊薹i誊誊誊§i 掣1|||鬻i蒌鏊纂雯霎囊糍:藕蠹瓣5

colorid

String

颜色id

返回结果

color

String

商品颜色

sizearray JSONArray

所有商品尺码

潮array臻潮灏萋鬟爨蔫髑蔗i黧萋篓i≥。薹羹i鬻iiii黧曩‘鬻i纂冀篓羹I|;||i

sizeid

String

尺码id

SIZe

String

商品尺码

imagearray JSONArray

图片数组

i褰赫。 一硼罐嬲i舔|||《赣龋巍囊獭羹Il錾善◇鬻i鍪i篓篓鬻鬻攀篓霪i缕i霪

imageurl String

图片url

description String

商品描述

C01TlCOl/rlt int

用户评论数

annOUnce

String

注意事项

buyprompt String

导购提示

北京交通大学专业硕士学位论文

4.3.4购物车模块业务逻辑设计

本模块提供了以下业务逻辑实现:添加商品、查看购物车详情、删除购物车

内的商品、清空购物车、更新购物车,其业务流程如图4-6所示。

图4—6购物车模块流程示意图

Figure4-6

word文档 可自由复制编辑

Schematic diagram of shopping cart module process

添加商品到购物车入口在商品详情2界面,用户登录的情况下,就可以将该

商品添加到购物车,此时用户进入购物车管理界面。购车中包含的商品信息:购

物车内商品的数量、商品总金额、运费、优惠金额、商品具体信息等。此外购物

车管理界面可以通过每个界面的底部菜单项来进入,用户进入购物车后就可以编

辑商品的数量、删除商品以及清空购物车。本系统借助于SQLite这种轻量级数据

库把购物车内的商品信息保存在客户端,该部分存储数据不会占用手机很多的内

存空间。

4.3.5订单模块业务逻辑设计

订单模块是系统最关键的部分,该模块的业务流程如图4—7所示。用户进入

购物车界面后,点击“去结算”按钮将会进入结算中心。在结算中心中,用户需

要选择付款方式、送货方式、送货时间和填写收货人的地址信息,假如用户有过

成功订购时,系统会获取最近一次用户订单设置的信息,以上信息按照用户上次

选择的默认值。此外,结算中心中还包括发票信息以及购物车中的商品具体信息。

用户设置好以上信息后,点击“订单提交“按钮,系统进入订单提交流程。具体

的订单提交时系统所做的工作稍后介绍。订单提交成功后进入订单提交成功界面,

用户将看到订单号、该订单所需费用以及提示信息。若用户继续购物点击”继续

购物“按钮,此时用户进入商品分类列表;若不想继续购物,点击”首页“按钮

Android手机网上商城系统总体结构

可以进入到系统首界面。

图4-7订单模块流程示意图

Figure4-7

Schematic diagram of order module

process

嘉点

客户端触发订单l 。二b枣古

提交事件

5“””

传/%11I"L地

址、订单信

客户端订单提交

线程

。__●_1●。。。。。。。。。。。。。。。。。。。。__’。。。。。。。。。。。。。。。。。。。一

1

向服务器端发送

i-rTrP请求

向商家服务器发

送HTrP请求

读取数据流,转

化成JSON对象

————z——一

瓦辐氟莰确

word文档 可自由复制编辑

商)端对应处理

action

图4—8订单提交流程示意图

Figure4—8

Schematic diagram of order submission process

订单提交工作流程具体如图4-8所示。用户点击客户端“提交订单”按钮,

此时客户端软件系统创建一个单独的线程来处理订单提交,该线程将订单信息向

指定的地址发送HTTP请求,服务器有对应的方法来处理这个请求。软件开发商服

务器端组装好商家服务器需要的数据信息后,在向商家服务器发送请求。商家服

务器接收到请求后会查询库存,若有则会给软件开发商服务器返回订单号,若缺

货则返回对应的缺货信息。软件开发商服务器再将结果返回给客户端,客户端根

29

北京交通大学专业硕士学位论文

据服务器给它的信息作出相应处理。若服务器返回订单编号,证明订单提交成功,

用户将会进入到订单提交成功界面;若服务器没有返回订单编号,有两种情况:

网络和缺货。网络不好的情况下,可能发生超时,给用户“订单提交失败,检查

网络状况”提示信息。缺货的情况下,给用户“订单提交失败,某某商品缺货”

提示信息。

用户在结算中心界面中获取支付方式需要客户端与服务器之间交互,服务器

提供处理客户端获取支付方式接口设计如表4-8所示,它会从服务器获取到所有

的支付方式,客户端请求的地址为payment/pay_getpayment.action。

表4—8获取所有支付方式接口设计

Table4—8 Interface design of access to all methods of payment

i懋2;{鏊勰

譬罐;喜誊”ot

n,

*一一

*m鬻一鬈鬃∞I|||鬻l||||

提交请求 userid

String

用户id

errOr

String

错误信息,成功时返回“O”,否则返回错误信息

paytypearray JSONArray

支付方式列表

返回结果 §‘

i“目ii黧獬溅擞鲤i秘酬瓣谶一g⋯Ml§“m 8{;i;瓣

paytypeid String

支付方式id

n锄e

String

支付方式名称

word文档 可自由复制编辑

用户在结算中心界面中获取送货方式需要客户端与服务器之间交互,服务器

提供处理客户端获取送货方式接口设计如表4-9所示,它会从服务器获取到所有

的送货方式,客户端请求的地址为shiptype/ship_getshiptype.action。

表4-9获取所有送货方式接口设计

Table4-9 Interface design of access to all the shipping method

*

§11||l奢黛i I|I凌i|||||lI||||攀鬻鬻篓鎏戮i|||||l||||||||||

一。璺;I,。£'¨

j黜i婺誉|戮。

提交用户id

userid

String

错误信息,成功时返回“O”,否则返回错误信息

errOr

String

shiptypearray JSONArray

送货时间列表

返ii||{|ii黧篓蒌雾鬻i攀鬻熬t 囊嬲琢嚣孵蘩荛鬻零零瀚謦一鬻纂鬻m黪ii蓁鬻i?囊i

送货方式id

shiptypeid String

n锄e

String

送货方式名称

Android手机网上商城系统总体结构

表4—10获取所有配送时间接口设计

Table4-1 0 Interface

design of access

to all the

delivery time

Z:z。萋望霭蕾;溉“

n嚣盐置+

纛”瓣“i“。

一t

。鬟芰

i。鬻

提交请求

userid

String

用户id

en.or

String

错误信息,成功时返回“O”,否则返回错误信息

shiptimearray JSONArray

送货时间列表

word文档 可自由复制编辑

返回结果

shipString

送货时间id

String

送货时间名称 n锄e

Table4—1 1 Interface design of submitting order

7滋霍蘸攀 ,圣!蛞 ,曲掌心i

Ⅻ。

usedd

String

用户id

JSONObj

订单数据

order

String

收货地址id

addressid

String

支付方式id

paytypeid

String

送货方式id

shiptypeid

String

送货时间id

shiptimeid

String

发票抬头

invoicetitle

String

发票内容

invoicebody

String

订单金额

totalprice

JSONArray

订单商品列表

productarray

j

I钧黼誊澄强鐾i藿鬻藕辫蠢鬻

g黼

prStringd

商品id

Int

word文档 可自由复制编辑

商品数量

COunt

String

商品颜色 colorid

String

商品尺码 sizeid

errOr

String

错误信息,成功时返回“O”,否则返回错误信息

String

订单编号

ordernum

String

需支付金额

totalprice

String

预计配送时间 estimatetime

String

订单生成时间 ordertime

北京交通大学专业硕士学位论文

4.3.6其他功能模块设计

账号管理。登录后的用户可以点击每个界面的“更多管理“标签,进入到账

号管理界面。该界面显示用户以下信息:账号、积分、等级、账户余额。此外用

户可以点击“退出登录”按钮,用户退出此系统。

收藏夹管理。用户进入收藏夹管理界面有两个接口:一个是每个界面中的“更

多管理功能”;另一个是在商品详情2界面有个“加入收藏夹”按钮。这两种情况

下用户进入用户管理界面都需要登录,其流程如图4—9所示。用户在商品详情2

界面点击“加入收藏夹”按钮可以将商品加入到收藏夹,这一过程需要客户端向

服务器端发送请求,服务器将商品存入到数据库中。用户进入收藏夹管理界面可

以看到自己收藏的商品,在这个界面可以点击“编辑”按钮,进入到收藏夹编辑

界面。收藏夹编辑界面允许用户删除收藏夹内的商品,实现这一功能也需要客户

端与服务器交互完成。

图4-9收藏夹流程示意图

Figure4-9

Schematic diagram of favorite process

用户点击“加入收藏夹”按钮时需要客户端与服务器之间交互,服务器提供

处理客户端加入收藏夹接口设计如表4-12所示,它会将商品加入收藏夹中,客户

端请求的地址为product/addtofavorite.action。

表4—12当前商品加入收藏夹接口设计

Table4·12 Interface design ofadding merchandise to favorites

■q!l§■l_;;;l

i i《i女i蒋潮。篓”§

舞I|li黧ii黧薹囊ig鬟鬻鬻i羹i雹薯

userid

word文档 可自由复制编辑

String

用户的id,登录时从服务器获得。

提交请求

productid String

商品id

返回结果

errOr

String 错误信息,成功时返回“0”,否则返回错误信息

Android手机网上商城系统总体结构

收藏夹编辑界面实现用户删除收藏夹内商品功能,这一功能也需要客户端与

服务器端交互完成。服务器提供处理客户端删除用户收藏夹中一项商品接口设计

如表4—13所示,该接口实现删除收藏夹中一项商品的功能,客户端请求的地址为

favorite/fmp_deleteFavorite.action。

表4-13删除登录用户收藏夹中一项商品接口设计

Table4-1 3

Interface design of deleting merchandise in the favorite

,·麓萎蠡蠢|||| 类塑。|||j |||||

、鬻●艾一ii

i。。i i。i

userid

String

用户id

提交请求

favoriteid

String

收藏夹id

返回结果 参照获取登录用户收藏夹中所有商品信息接口返回结果

用户进入“加入收藏夹”界面时需获取收藏夹内商品,这需要客户端与服务

器之间交互,服务器提供获取登录用户收藏夹内所有商品接口设计如表4—14所示,

客户端请求的地址为favorite/fmp_favoritelist.action。

表4一14获取登录用户收藏夹中所有商品信息接口设计

Table4—14 Interface design of access to all goods in the

logged-Oil user’S

favorites

_

i变量名*l 1|||1豢型2篱。;

。i攀i!纛冀;;。蕤薹囊麓缫j};鬻。鍪鬻羹§l

提交请求

userid

String

用户id

errOr

String

word文档 可自由复制编辑

错误信息,成功时返回“0”,否则返回错误信息

favoritearray JSONArray

收藏夹信息列表

j黼 。

§

攀jl i辎黪哆麓峨|||||笺孵麓麟豢l鬃黎鬻i黍霪飘鬻攀i i纛i鬻}||||

favoriteid

String

收藏夹id

productid

String

商品id

返回结果 n锄e

String

商品名称

price String

商品价格

marketprice String

商品市场价格

colorcount Int 颜色数量

storage

Int 库存状态;O:缺货,1:现货

imageurl String

图片url

地址管理。登录用户点击每个界面“更多管理”按钮,可进入“更多管理”

页面,选择地址管理列表项,进入地址管理界面。若用户未登录选择地址管理列

表项,则用户转入登录界面,登录成功返回地址管理界面。用户进入地址管理界

面后,若该用户未添加收货地址,则会进入添加用户地址界面。用户点击“新增

地址"进入添加地址界面,可以添加地址、手机号码、收获人姓名等信息。用户

北京交通大学专业硕士学位论文

添加收货地址成功后进入到地址列表界面。用户触发每一条收货地址,进入收货

地址详情界面,该界面有“编辑”按钮和“删除”按钮。用户点击“编辑”按钮

可以编辑收货地址,用户点击“删除该条收货地址”按钮可以删除该项收货地址

记录。

图4-10地址管理流程示意图

Figure4-10

Schematic diagram of address management process

在地址管理界面,用户可以编辑某一条收货地址或者添加一条收货地址,需

要服务器提供更新收货地址接口,该接口设计如表4-15所示,客户端请求的地址

为usersaddess/user_updateorder.action。

表4—15更新收货地址接口设计

Table4-15 Interface

design ofupdating shipping address

i蒸t鬻i篓鬟 攀变鬃鬟蒸 黧i黛;蒸§糕!霪i雾薹篓i i霾i囊豢攀1|||鬻l蓬鬻iiiiiiiiiiiiiiiijii]il

word文档 可自由复制编辑

ji!iii!i!i!i!i!i!i!i!!i奢i参燃鬻骥囊薹鬻囊鬻鬻||豢骥||篱鬻

usefid

String

用户id

shipaddr JSONObject

收货地址数据

;i

一;;

鬻’。}ws鞠澈羹羹纛粳赣泣薤冀蠛鬻g。i蓁缀一E

E,瓣攀鬻i !!Ⅲiiiiiiiiiiiiiliiii;iii;i;iiiTi;iiiii;iiiiT#:i: 一’

I_爨g簧i ij“ ;}c。:躲誊

addrid

String

收货地址id,如id为0,则添加一个新的收货地址

n锄e

String

收件人姓名,不可为空

提交请求

provid String

省(区)id

cityid

String

城市id

areaid

String

区域id

address

String

收件人地址,不可为空

zipcode String

收件人邮编,不可为空

mobile

String 收件人手机号码,和phone字段不可同时为空

phone

String

收件人电话号码,和mobile字段不可同时为空

返回结果 errOr

String

错误信息,成功时返回“0”,否则返回错误信息

34

Android手机网上商城系统总体结构

用户进入地址管理界面时需获取用户所有的收货地址,服务器提供获取登录

用户所有收货地址接口设计如表4-16所示,服务器将会将用户所有的收货地址返

回给客户端,客户端请求的地址为usersaddess/user_getorder.action。

word文档 可自由复制编辑

表4—16获取收货地址列表接口设计

Table4—1 6 Interface design of receiving address list

i鬻囊鬟j黧i 囊?勰1i{i蚤囊。黧 。舅j摹薹霎溺l《.蠹:群j

“i娄粪“嚣r“纛1j一"¨¨#哦,‘褂

奠萋。?一僦一榭”#I{葛蒜嵩⋯∞o

enDr

String

错误信息,成功时返回“0”,否则返回错误信息

JSONArray

收货地址列表

shiparray

_一l嚣霉髓蕾辫舞i罨磬鼍嚣;黧嚣萋毳i翦o-¨女⋯辫叠甚翁耄毡马重巍a骶∞髦3℃凌i箍墅i馐盏瓣固囊ij0心叠黑穗i黧一。¨*i糍尝∞∞毒端黑嚣黼#簿警*-薷ii嚣i逡i譬毒一

adString

地址id

String

所属地区

area

返回结果

String

收件人姓名,不可为空

name

String

收件人地址,不可为空

address

String

收件人邮编,不可为空

zipcode

Slring 收件人手机号码,和phone字段不可同时为空

mobile

String

收件人电话号码,和mobile字段不可同时为空

phone

表4—17删除收货地址接口设计

Table4·1 7

Interface design of delting address of receving

雾鬻鬻ii

i

鬻囊量謦戮 蒸l擘奠攀戮 豢i攀鬻i||||霪鋈戮§霪寨i||麓囊蘸攀篓鬻攀鬻篓|||||1||||ii鎏豢戮攀

userid

String

用户id

word文档 可自由复制编辑

提交请求

String

收货地址id

addrid

en.or

String

错误信息,成功时返回“O”,否则返回错误信息 返回结果

北京交通大学专业硕士学位论文

图4—1l订单管理流程示意图

Figure4—1

1 Schematic diagram of order management

process

用户获取订单详情时,需要客户端向服务器发送获取订单详情信息的请求,

服务器处理客户端获取订单详情的接口设计如表4—18所示,客户端的请求地址为

costcentefforderdetail.action。

表4—18订单详情接口设计

Table4-1 8 Interface

design of order details

鬟黧s篓攀鬻攀 iim委鞲薏§蘩 鬻鬻囊警嚣攀攀 霆鬟鬻篱一s“a一蒸辫攀鬻繁l鬻攀鏊鬻蘩蒸羹羹鬻鬻。黧霪i

userid

String

用户id

提交请求

orderid

String

订单id

enDr

String

错误信息,成功时返回“0”,否则返回错误信息

order

JSONObj

订单详情

i||||豢

。鬻鬣2;;一⋯i‘8鬻i麓l园麓鬻戮麓鞠赣羹羹il黍戮溱繁鬻鬟ll鬻戮蘩鬻ii

orderid

String

订单id

ordemum

String

订单编号

n锄e

String

收货人姓名

word文档 可自由复制编辑

返回结果

mobile

String

收货人手机号码

phone String

收货人电话号码

address

String

完整的收货地址

zipcode String

邮政编码

paytype String

支付方式

shiptype String

送货方式

shiptime String

送货时间

Android手机网上商城系统总体结构

表4-18订单详情接口设计(续)

Tab 。e4—1 8

Interface

design of order details(continue)

嚣羹釜麓鬻j

羹黧

一囊i

。寨 i瀵鬻誓

鬻一鬻。。一⋯“l

String 备注S

发票抬头 invoicetitle

String

发票内容

invoicebody String

商品金额

prodprice String

运费

transprice String

优惠金额

discprice String

订单金额

totalprice String

订单生成时间 time

String

订单状态

word文档 可自由复制编辑

state

String

数量总计

totalcotmt Int

返回结果

订单商品列表

productarray JSONArray

雾蓦簿i 2。。2—2

8”。i赫蠢溢黛I|||警羹il||羹巍灏豢警骥 黉篓霪鬻鬻j戮囊鬻鬻鬻鬃囊i

商品id

productid

商品数量

count Int

商品单位

unit

String

商品名称 n锄e

String

商品价格

price String

商品颜色

color

String

商品尺码

S1Ze

String

图片url

imageurl String

37

北京交通大学专业硕士学位论文

进行持久化开发,在Hibernate中也有关联、多态、继承、组合这些Java基础语义

的概念,这贴近了我们开发的习惯,也将表与表之间的复杂的逻辑关系映射与对

象实体之间的关系。

在建模过程中,我们将各个实体之间的关系映射到类中,通过Hibernate来帮

我们维护各个实体对象间复杂的关系,从而减轻了我们对各个实体对象关系维护

的复杂度。本系统的持久化对象之间的关系如图4—12所示,下面小节将具体介绍

各个持久化对象设计。

1

0..}

图4一12系统持久化实体E.R示意图

Figure4·-1 2

Schematic diagram of persistent

entity

E--R

word文档 可自由复制编辑

4.4.1 系统公共数据模型设计

通过对需求说明的认真分析,我们提取应用中的对象,将这些对象抽象成类,

最后从这些类中找出需要持久化保存的类,也就是持久化对象(PO)。

本系统中设计了一个公共的实体类SuperEntity,以下所有的实体类都会继承

自它,其它实体类都包含该实体类的属性,该实体的详细设计如表4-19所示。

Android手机网上商城系统总体结构

表4一lg

SuperEmity对象的设计

类名一。一一麓i

SuperEntity

鬻ij鼗鬃薅稳繇鬻i羽

、。

。。?&m

i一。,獭髑;i稳,零囊薹薹臻i

主键id id

String

名称

String

n锄e

创建日期 createDate

Date

更新日期

updateDate

Date

是否可用(0:不可用,1:可用)

enable

Integer

备注 memO

String

用户注册后商家服务器会自动给用户一个默认值,其详细设计见表4-20。

表4—20

Userlnfo对象设计

Table4-20

Design of Userlnfo object

篡鏊攀鬻粪餐黍鬻鬻

一一⋯一一;

Userlnfo

囊鬻蠢教舞纛攀溜i蒸鬻|

UserInfo

骥黍鬻霜蠢鬻鬻慧麓蘩戮漂鬻鬻荔鬻

-I_∞

邮箱

email

word文档 可自由复制编辑

String

第三方服务器存储商品id

originalld String

等级

level

String

积分

integral

Integer

余额 balance

String

用户对应的订单 userOrderSet Set

用户对应的收藏夹 favoriteUserSet Set

用户对应的收货地址 usersAddress

Set

39

北京交通大学专业硕士学位论文

促销对应的商品实体涉及到的商品这个实体,论文在商品展示模块持久层设计小

节中讲述。

促销实体Sale,对应于商家开展的促销信息,商家开展的所有促销活动消息

都存放于此类中,每条促销信息都对应于一个促销商品集合,其详细设计见表4—2l

所示。

表4—21 Sale对象设计

Table4-2 1

Design of Sale object

豢i鬈鍪黼。j荔薹鍪i羹纂鋈爨蒌纂

Sale 鬻aEi鬻1|||黼纛纛鬻蘩蘩蘩鬻 sale

蘩!篓攀。“一翳黼一二一然纂

⋯ w 。、≈

鍪i。。逡女津溺fj赫簿。i糕i

、一一一^。iM

瓣“篓黧

i黧粥毫尊葶蜉i纂豢

il黍攀i戮蒸蒸鬓鬈鬓鼗瑟I|||:蘩;l骥|||||||ii。i

saleTitle

String

促销标题

saleT色】(t

String

促销文字

saleid

String

促销信息id(第三方服务器端促销信息id)

word文档 可自由复制编辑

orderWeight Integer

排序权重

imageurl

String

图片url

beginDate

Date 开始日期

endDate Date

结束日期

status

Integer

状态(0:停用,1:启用)

type Integer

类型(1:促销信息,2:麻豆秀)

saleMappPoductSet Set

促销商品集合

促销对应的商品实体SaleMappProduct,存放促销信息id和与之对应的商品id,

通过促销信息id可以找到与之关联的商品id,进而找到促销商品。该实体包括促

销信息id、商品id、权重等属性,其详细设计参见表4-22所示。

表4—22

SaleMappProduct对象设计

Table4-22

Design of SaleMappProduct object

缆戮戮黼i添

SaleMappProduct

l餮溺嗣鬈翳sale_mapp_product

篓蘩i粪鬻艇名簌i 1|||粪瀵; 獭缫麓鍪鬟|||||i戮瑟鬻 萎;鬻||||I黍寨鬻蘩鬻蕾黧鬻1||||攀黍鋈蓊鬻l囊辫§|||||;i1|||

saleld

String

促销信息id

productid String

商品id

orderWeight Integer

排序权重

name

String

名称

Android手机网上商城系统总体结构

4.4.4商品展示模块持久层设计

本模块包含的实体对象有:商品实体、商品类型实体、商品对应的图片实体、

商品对应的库存实体。

表4-23 Product对象设计

Table4-23

word文档 可自由复制编辑

Design

ofProduct object

|;||li漂馨粪鬻?麓豢

Product

鬻萎||;|鬻数据纛纛囊羹戮j||;|溺Product

j。《

鬈§戮寨鍪il戮i鬻l|;|囊l■囊漤寨。一戮l一.攀

鬻 属矬濯韵一

,i

j蒺雾塞墼攀

一~l

originalId string

第三方服务器存储商品id

productNo String

商品编号

SeX

Integer

0:男,1:女

状态标识(O:下架,l:上架,2:上架隐藏,

status

Integer

3:下架保存)

marketPrice

String

市场价格

memberPrice

String

会员价格

finalPrice

String

最终价格

keyWords String 关键字,用于搜索

status

String

材料

minAge Integer

最小年龄(适于顾客的最小年龄)

maxAge Integer

最大年龄(适于顾客的最大年龄)

SeaSOn

String 季节(顾客穿着的时令)

listingdate

Date 上市的日期

typeld

word文档 可自由复制编辑

Integer

是否新品(0:新品,1:非新品)

image String

商品图片(首页图)

isRecommend

Integer

是否推荐1推荐0非推荐

announcements

String

注意事项

sizelmg String

尺码图片

buyPrompt String

导购提示

productType

ProductType

产品类型

isNew

Integer

是否为新品(0:非新品,1:新品)

rebate

Double 折扣

productRepertorySet

Set

商品对应的库存集合

productMapplmageSet Set

商品对应的图片集合

41

北京交通大学专业硕士学位论文

商品实体作为一个核心的实体类,涵盖了商品的重要信息以及它与其他实体

类的关系,它是整个应用系统的核心关键持久化类,表4-23详细描述了该类的内

部结构。商品对应的图片实体用来存放某个具体商品的所有图片,在不同的页面

展示商品时需要不同的图片,我们将所有商品图片保存到此类中。该实体相对比

较简单,该实体包含的信息如下:图片url、排序权重、图片类型(1:产品列表图

片,2:大图,3:小图,4:促销图片)、关联的所属商品实体。商品类型,指明

商品所属的分类,标识商品所在的类别,详细设计见表4—24所示。

表4—24

ProductType对象设计

Table4—24

Design ofProductType object

i蝥赣蠢繁

ProductType 戮溺霸瓣舞暇product_type

戮蘩__l荔戮 鬻i藜鬻l鬻囊蕊羹||||I罄鬻黎蘩||||戮 鎏蹇鎏缓缓懑l鬻;|||{|鬻鬃_|I鬈羹羹蒸l鬻鬻鬓鬃夔鬻鬻豢戮||||

word文档 可自由复制编辑

originalId String

原始id

level

Integer

分类层级,一级为0,二级为1,依次类推

parentld String

上一级分类id,如果是一级分类,该项为0

imageurl String

图片url,如果没有图片,此项为空

orderWeight

Integer

排序权重

productSet

Set 关联的商品集合

商品对应的库存,它提供了商家所拥有的商品,包含了商品的尺码与颜色信

息,详细设计见表4—25所示。

表4—25

ProductMappRpertory对象设计

Table4-25

Design

of ProductMappRpertory

object

鬻黉l黍

ProductMappRepertory

鬟蠢精阚Product_mapp_repert。ry

熬赣翻黛骥 鬟攀簇l戮囊謦鬻霜鬻 鬻瀵瀵鬻蘩鬻蒸餐霪薯蒸溺熬戮缓蘩蒸鎏鋈鬻鬻

colorName

String

颜色名称

colorOrder

Integer

颜色排序权重字段

colorRgbName String

颜色的RGB表示名称

isLive

Integer

是否下架(O:下架,1:上架)

nUm

Integer

商品数量

S1Ze

String

尺码

sizeOrder

word文档 可自由复制编辑

Integer

尺码排序权重字段

productId String

关联的商品id

42

Android手机网上商城系统总体结构

4.4.5购物车模块持久层设计

购物车模块存储放在客户端,由SQLite数据库来存储,除此模块外其他数据

都是存储在服务器的数据库中,因此这里不需要设计特殊的实体,借助于商品实

体类就可以完成数据持久化。建立数据库表order—car—table,其数据字段做一个简要

说明,如表4—26所示。

表4-26

Order cal"table表设计

Table4-26

Design of Sale object

iiiiiiiiiiiiiiiiiiiiiii!iiii!iiiiiiii!iii!!iiiiiiiil掌爱名嚣鬻攀鎏 !鬻攀攀霞鬃一羹鼙i鎏鬻ii篱攀蒸 篱iil蒸蘩鬻蒺鬓戮;鬻麓囊鬻攀骥鏊鬻i I|||戮

productid

Tb)(t

商品id

n锄e T色Xt

商品名称

coloid Te)(t

商品颜色id

sizeid Te)(t

商品尺码id

color

Tb)【t

商品颜色

SlZe

Te)(t

商品尺码

pnce

Te)(t

商品价格

COtmt

Int

商品数量

imageurl

Te赋

商品图片url地址

4.4.6订单模块持久层设计

表4—27

OrderMappProduct对象设计

word文档 可自由复制编辑

Table4-27

Design ofOrderMappProduct object

蓉菘鬻纂。囊名i慧黧i基一

OrderMappProduct :||ii●旗粪囊鬈囊纂溺order_mapp_product

鬻蒸蠢藏健名豪誉;!鬟荔 纛攀篓囊攀羹型ii攀鬻i鬻攀i 鬻|||||1;|||霪鬻鬻蒸嚣i篓蒸奢奠||||i攀蕤篓鎏鬻鬻1|;||||瀵l鬻

productId String

商品id

colorName

String

颜色

SlZe

String

尺码大小

nUm

Long

商品数量

orderF01"111 OrderForm 商品对应的订单

price

String

商品价格

订单模块中需要设计支付方式实体Payment、送货时间实体ShipTime、送货方

式实体ShipType,这三者比较类似,涉及字段比较少,简单介绍。实体属性:主

43

北京交通大学专业硕士学位论文

键标识id(String)、关联的订单集合orderFormSet(Set)、排序权重

orderWeight(Integer)、名称name(String)、第三方服务器存储该记录id(String)。

订订单对应商品实体OrderMappProduct,通过该实体记录顾客购买的商品信息,

其详细设计见表4-27所示。

订单实体OrderForm,该实体记录了顾客所提交订单的详细信息。提交的订单

需要商家服务器来最终确认才可以提交成功。

表4—28 OrderForm对象设计

Table4-28

Design of OrderForm object

鬻鬻蒸豢0荔鬻鬟豢

OrderForm

i鬟鬻攀糖纛麓鬈鬓鬻溺 order—form

“⋯⋯。∞i。o

≯辫

黧i蠢“

囊纛

。。囊‘。黼。瓣i蒸糕ii j”55i

~麟稼;i⋯

麟搿;”

word文档 可自由复制编辑

,黼蒸逝

鐾篓

一一 一。”麓I! +A

m口_㈣

ofiginalid String

第三方数据库中订单id

disPrice Double

折扣金额

productPrice

Double

商品金额

price Double

订单价格

mobile

String

收货人的手机号码

phone String

收货人的电话号码

address

String

收货人的地址

zipcode

String

邮政编码

payment Payment

支付方式

shipType ShipType

送货方式

shipTime

ShipTime

送货时间

invoiceTitle

String

发票抬头

invoiceBody String

发票内容

transPrice Double

运费

status

String

word文档 可自由复制编辑

订单状态

checkDate

Date

确认日期

sendDate

Date

发货日期

areaId

String

区级id

orderNo

String

订单编号

createType Integer

创建类型

userlnfo Userlnfo

用户信息

ordeMappProductSet

Set

订单对应的商品集合

Android手机网上商城系统总体结构

4.4.7更多管理模块持久层设计

更多管理模块涉及到账号管理、地址管理、收藏夹管理、订单管理。账号管

理和订单管理用到的实体对象分别在登陆注册、订单管理模块进行了详细的描述。

现在讲述地址管理和收藏夹涉及到的实体对象。

地址管理模块的实体为UsersAddress实体和Area实体,UsersAddress实体实

体比较简单,简要介绍一下。UsersAddress实体属性:地区属性area(Area)、收

获地址address(String)、收货人手机号码mobile(String)、收货人电话号码phone

(String)、 邮编zipcode(String)、收货人信息userlnfo(Userlnfo)、第三方服务

器存储该记录originalId(String)、排序权重orderWeight(Integer)。Area实体用来

存储用户选择收货地址时的省、市、区三级内容,其详细设计如表4—29所示。

表4-29 Area对象设计

Table4-29

Design ofArea object

类名

Area

黧冀辫羧瓣霹裘鬻i鬻一,

area

m⋯, ”

飘“兰篓煮灏麓慧i国碓黔i鬻羹、塞曼参

。z一*●时E^j K一:一一 ⋯一¨⋯≯

。i黧§||||||||鬻鍪瀵i蠢鬻;=i。瞩ii黧

cityld String

城市id

word文档 可自由复制编辑

provinceld String 省份id

postcode String

邮编

districtNumber

String

地区编号

childArea

Area

子类地区

parentArea

Area 父类地区

usersAddress Set

收货人地址信息

收藏夹模块用到的实体类为Favorite和FavoriteMappProduct,这两个实体类设

计的都比较简单,简单介绍一下。Favorite属性:主键id(String)、名称name(String)、

关联的收藏商品集合favoriteMappProductSet(Set)、关联用

户信息实体userlnfo(Userlnfo)。FavoriteMappProduct存放收藏夹id和与之对应

的商品id,通过收藏夹id可以找到与之关联的商品id,进而找到收藏夹商品。该

实体属性:商品记录主键productld(String)、关联收藏夹实体favorite(Favorite)。

北京交通大学专业硕士学位论文

Android手机网上商城系统实现

5 Android手机网上商城系统实现

系统实现是以功能模块划分来讲述的,牵涉到客户端和服务器端,其项目结

构如图5.1所示,左侧是服务器项目结构图,右侧是客户端项目结构图。

·茹store

§氇Deployment Desoip+.oE store

J参Java

Resource5

J缪src

二鑫COrn

j器(omⅢm

二舞(om州n∞adon

}国consecne口‘∞mmon

_奄com,;ec㈣.∞mfe岫

、爱cora.secneo.data

j盘cortLsecneo,pojo

:国com5ecn∞.se耐ce

、墨com.secrleo.Ⅻ慨翻pj

。国confLsecneo.sync

舀cof仉secr}e口tes£

;、猡framework

;缪∞nf;g

:置&Libraries

》畦Javakfipt Support

word文档 可自由复制编辑

p》build

j白doc

p鑫》WebComent

J澎ShopBEKIZ

:’捌淑Androld Z2

》戮rnpdar

:簿MpSOK。jar

。渺5rc

p{≥参com

》溱曼魁曼!黧篓氅曼襞

》器corn.”-cneo.share

扣稿蚤com.5eche。.share,bddz

8

a暮譬∞m。secneo.share.beklz.activltles

》糟corn.s_eclqeo.share..bekiz.adapter

》国corn.sectleo.share.bebz.bean

扣墨瑟∞rm5echeo.share.be|c;z.common

》目曾corn.sec啪.share.bekJz.database

≯d昌翳com’secr峙口.share-beidz.rernote

》差黏conll5ecne。.share。bekiz.threads

》≤》gen£G尊rt母l趔led』a、+张File#]

》琵》assets

p&参b;n

》穗》I;b

≯≤b Gbs

》b res

》为ShopBEKIZ

美§AndroldMen;fest.xml

;强oroauard.clFo

图5—1客户端和服务器项目结构示意图

Figure5-1

Schematic diagram of client and server project structure

5.1 客户端与服务器端通信

客户端与服务器之间的通信都是通过接口来设计的,客户端与服务器端通信

实现都遵循一个固定模式:由客户端的线程向服务器发送请求,服务器将结果返

回给该线程。

5.1.1通信连接实现

本系统通信连接的实现是指view层(客户端)向服务器端发送请求,服务器

根据请求给客户端一个响应。现在介绍客户端与服务器之间通信连接过程。用户

的操作会驱动界面类新建一个以对应的Thread类用来响应用户的操作请求,该

Thread类通过RemoteApilmpl类向商家服务器发送HTTP请求,这一请求由

HttpUtils类来完成,稍后会仔细介绍该类实现连接请求的方法。软件开发商服务

器调用read方法获取HTTP响应,读取到提交的用户请求。本项目中用户注册功

47

word文档 可自由复制编辑

本文标签: 商品用户客户端系统界面