(如有侵权,请及时联系博主)
作者:LC
开发工具与关键技术:MyEclipse、MySql、Tomcat、SSM框架(Spring、Spring MVC、MyBatis)
完成模块功能:XX商城系统——前台
1、注册:
1.1、公司注册:指的是采购公司和供应商公司信息进行登记。
1.2、用户注册:指的是采购公司用户和供应公司用户的注册。
2、登录:指的是分别采购用户的登录和供应用户登录。
3、搜索首页:指的是九牧商城首页商品展示。
4、购物车:指的是九牧商城商品需求商品添加以便用户选购。
5、购买流程:
5.1、购买流程方案1:指的是九牧商城商品单一直接下单购买。
5.2、购买流程方案2:指的是九牧商城商品从购物车选购多个商品直接下单购买。
6、客户账户管理:
6.1、个人资料:指的是用户个人信息展示或者修改。
6.2、修改密码:指的是用户个人账号密码遗忘进行修改。
6.3、地址管理:指的是用户个人配送地址添加、修改、删除。
7、客户订单管理:
7.1、我的订单:指的是对订单的状态监管,方便了管理。
8、客户物流管理:
8.1、物流查询:指的是对订单的物流实时状态监管,方便了管理,为了带来给客户更好的体验。
8.2、物流地图查询:指的是对订单的物流路线实时状态监管,方便了管理,为了带来给客户更好的体验。
9、店铺商品管理:
9.1、已审核商品:指的是通过后台审核后通过的商品,客户能够搜索购买,方便对商品管理。
9.2、未审核商品:指的是通过后台审核后没通过的商品,客户不能够搜索购买,方便对商品管理。
9.3、已下架商品:指的是有问题的商品通过后台下架,客户不能够搜索购买,方便对商品管理。
10、店铺订单管理:
10.1、我的订单:指的是对订单的状态监管,方便了管理。
10.2、帐单报表:指的是对购买商品已完成收货的订单,方便对订单的核实。
10.3、日销量报表:指的是按日对购买商品已完成收货的订单,方便对订单的核实。
10.4、月销量报表:指的是按月对购买商品已完成收货的订单,方便对订单的核实。
10.5、年销量报表:指的是按年对购买商品已完成收货的订单,方便对订单的核实。
11、店铺物流管理:
11.1、订单配送:指的是对订单配送以及给订单发货。
11.2、物流查询:指的是对订单配送物流信息,为了带来给客户更好的体验。
11.3、物流地图查询:指的是对订单配送物流信息,并且用地图来显示,为了带来给客户更好的体验。
12、功能架构图:
Address |
地址表 |
基础表 |
表1 |
Article |
文章表 |
基础表 |
表2 |
back_end_user |
后台用户表 |
基础表 |
表3 |
basics |
基础表 |
基础表 |
表4 |
basics_data |
基础数据表 |
基础表 |
表5 |
company |
公司表 |
基础表 |
表6 |
integral |
积分表 |
业务表 |
表7 |
membership_grade |
会员等级表 |
基础表 |
表8 |
operation |
操作表 |
基础表 |
表9 |
payment |
支付表 |
业务表 |
表10 |
permissions |
模块表 |
基础表 |
表11 |
permissionstable |
权限表 |
基础表 |
表12 |
product |
产品表 |
基础表 |
表13 |
purchase |
采购表 |
业务表 |
表14 |
purchasedetailed |
采购明细表 |
业务表 |
表15 |
role |
角色表 |
基础表 |
表16 |
shopping_cart |
购物车表 |
业务表 |
表17 |
system_log |
系统日志表 |
基础表 |
表18 |
twolevelmodule |
二级模块表 |
基础表 |
表19 |
user_address |
客户配送地址表 |
业务表 |
表20 |
users |
客户表 |
基础表 |
表21 |
表名:payment(支付表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
payment_id |
int |
11 |
|
是 |
是 |
|
否 |
|
支付ID |
2 |
purchase_id |
int |
11 |
|
|
|
|
是 |
|
采购ID |
3 |
payment_method_id |
int |
11 |
|
|
|
|
是 |
|
支付方式ID |
4 |
payment_amount |
Decimal |
11 |
|
|
|
|
是 |
|
支付金额 |
5 |
payment_time |
datetime |
|
|
|
|
|
是 |
|
支付时间 |
表名:purchase(采购表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
purchase_id |
int |
11 |
|
是 |
是 |
|
否 |
|
采购ID |
2 |
purchasers_id |
int |
11 |
|
|
|
|
是 |
|
采购公司ID |
3 |
supplier_id |
int |
11 |
|
|
|
|
是 |
|
供应公司ID |
4 |
order_number |
varchar |
30 |
|
|
|
|
是 |
|
订单号 |
5 |
purchasing_time |
datetime |
|
|
|
|
|
是 |
|
采购时间 |
6 |
logistics_single_number |
varchar |
32 |
|
|
|
|
是 |
|
物流单号 |
7 |
order_status_id |
int |
11 |
|
|
|
|
是 |
|
状态ID |
8 |
receipt_address_id |
int |
11 |
|
|
|
|
是 |
|
收件地址Id |
9 |
send_address_id |
Int |
11 |
|
|
|
|
是 |
|
发件地址Id |
表名:purchasedetailed(采购明细表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
purchase_detailed_id |
int |
11 |
|
是 |
是 |
|
否 |
|
采购明细Id |
2 |
purchase_id |
int |
11 |
|
|
|
|
是 |
|
采购Id |
3 |
product_id |
int |
11 |
|
|
|
|
是 |
|
产品Id |
4 |
order_quantity |
int |
30 |
|
|
|
|
是 |
|
数量 |
表名:shopping_cart(购物车表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
shopping_cart_id |
int |
11 |
|
是 |
是 |
|
否 |
|
购物车Id |
2 |
purchasers_id |
int |
11 |
|
|
|
|
是 |
|
采购商Id |
3 |
product_id |
int |
11 |
|
|
|
|
是 |
|
产品Id |
4 |
number |
int |
11 |
|
|
|
|
是 |
|
数量 |
5 |
time_to_join |
datetime |
|
|
|
|
|
是 |
|
加入时间 |
表名:user_address(用户地址表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
user_address_id |
int |
11 |
|
是 |
是 |
|
否 |
|
地址Id |
2 |
user_id |
int |
11 |
|
|
|
|
是 |
|
用户Id |
3 |
province_id |
int |
11 |
|
|
|
|
是 |
|
省Id |
4 |
city_id |
int |
11 |
|
|
|
|
是 |
|
市Id |
5 |
area_id |
int |
11 |
|
|
|
|
是 |
|
区县Id |
6 |
town_id |
int |
11 |
|
|
|
|
是 |
|
镇街Id |
7 |
addressee |
varchar |
20 |
|
|
|
|
是 |
|
收件人 |
8 |
detailed_address |
varchar |
200 |
|
|
|
|
是 |
|
详细地址 |
9 |
receiving_phone |
varchar |
11 |
|
|
|
|
是 |
|
收件电话 |
10 |
is_it_default |
tinyint |
4 |
|
|
|
|
是 |
|
是否默认 |
说明:把自己设计的模块分类进行截图展示、该模块用到的数据表和关系描述、界面层经典代码截图描述。 经典代码定义:界面层控件的特殊使用、数据逻辑的特殊处理的重要代码截图。
(1)、供应商公司注册:如图1-1,如实填写客户类型、公司名称、公司地址、公司账号等信息,然后点击公司注册,完成供应商注册。
图1-1
(2)采购商公司注册:如图1-2,如实填写客户类型、公司名称、公司地址、公司账号等信息,然后点击公司注册,完成采购商注册。
图1-2
(1)供应商公司用户注册:如图1-3,选择注册的客户类型、填写完整要注册的公司等相关信息,点击用户注册,完成供应商公司的用户注册。
图1-3
(2)采购商公司用户注册:如图1-4,选择注册的客户类型、填写完整要注册的公司等相关信息,点击用户注册,完成采购商公司的用户注册。
图1-4
(1)登录如图1-5,供应商、采购商的用户填写相关信息,点击登录。
图1-5
(1)登陆成功后进入主页面,输入商品的名称,点击搜索商品,如图1-6。
图1-6
(2)输入商品的名称,点击搜索商品,如图1-7。
图1-7
(1)输入名称,搜索商品,如图1-8。
图1-8
(2)点击商品进入详细页面,点击加入购物车,如图1-9。
图1-9
(3)看到购物车或者是图标,点击图标或者按钮,如图1-10,选择需要的商品购买进行付款。
图1-10
(1)输入名称,搜索商品,如图1-11。
图1-11
(2)点击商品进入详细页面,点击加立即购买,如图1-12。
图1-12
(3)进入如图1-13,进行确认订单,点击结算。
图1-13
(4)进入如图1-14,进行付款,选择相关的付款模式,确认付款。
图1-14
(1)从我的购物车选择需要的商品,点击结算,如图1-15。
图1-15
(2)进入如图1-16,进行确认订单,点击结算。
图1-16
(3)进入如图1-17,进行付款,选择相关的付款模式,确认付款。
图1-17
(1)点击账户管理的个人资料,进入如下图1-18,查看相关的个人资料,填写完整信息,点击保存。
图1-18
(1)点击账户管理的修改密码,进入如下图1-19,填写完整信息,点击保存。
图1-20
(1)点击账户管理的地址管理,进入如下图1-21,点击添加地址,填写完整信息,点击保存。点击修改填写相关信息保存,点击删除,确认删除。
图1-21
(1)点击订单管理的我的订单,进入如下图1-22,点击待付款,待发货,待收货等操作,进行查询订单状态。
图1-22
(1)点击物流管理的物流查询,进入如下图1-23,选择订单点击物流查询,进行查询。
图1-23
(2)进入如图1-24,物流详细信息。
图1-24
(1)点击物流管理的物流地图查询,进入如下图1-25,选择订单点击物流地图,进行查询。
图1-25
(2)进入如下图1-26,物流地图路线的查询。
图1-26
(1)点击商品管理的已审核商品的查询,进入如下图1-27,选择要下架的商品点击下架商品。
图1-27
(1)点击商品管理的未审核商品的查询,进入如下图1-28,点击上传商品,填写完整信息进行保存;点击修改商品填写完整要修改的信息,点击保存;点击删除商品,确认删除。
图1-28
(1)点击商品管理的已下架商品,进入如下图1-29,点击上架或者删除商品。
图1-29
(1)点击订单管理的我的订单,进入如下图1-30,未付款、已付款、已收货等操作;未付款的提醒买家;已付款的进行物流配送,已收货的进行查询。
图1-30
(1)点击订单管理的帐单报表,进入如下图1-31,根据帐单日期查询。
图1-31
(1)点击订单管理的日销量报表,进入如下图1-32,产品品牌、商品名称、查询日期进行查询。
图1-32
(1)点击订单管理的月销量报表,进入如下图1-33,产品品牌、商品名称、查询日期进行查询。
图1-33
(1)点击订单管理的年销量报表,进入如下图1-34,产品品牌、商品名称、查询日期进行查询。
图1-34
(1)点击物流管理的订单配送,进入如下图1-35,点击配送物流,填写完整信息进行保存;
图1-35
(1)点击物流管理的物流查询,进入如下图1-36,点击订单的物流查询。
图1-36
(2)进入如图1-37,订单物流信息。
图1-37
(1)点击物流管理的物流地图查询,进入如下图1-38,点击物流地图。
图1-38
(2)进入如图1-39,地图物流详细路线图。
图1-39
说明:开发过程遇到的问题、及其解决办法、思想突破等总结。
软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,非常广泛。这样开发出完善健壮的软件,对程序员的要求将会非常高。如果采用成熟,稳健的框架,那么一些基础的通用工作,比如,事物处理,安全性,数据流控制等都可以交给框架处理,那么程序员只需要集中精力完成系统的业务逻辑设计,可以降低开发难度。框架好处:重用代码大大增加,软件生产效率和质量也得到了提高;代码结构的规范化,降低程序员之间沟通以及日后维护的成本;知识的积累,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;软件设计人员要专注领域的了解,使需求分析更充分;允许采用快速原型技术;有利于在一个项目内多人协同工作;使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。
框架其实是减小开发难度以及提高开发效率,本人初始使用SSM组合框架,在使用SSM组合框架开发项目之前,首先对SSM组合框架进行拆分了解其作用。
第一个是Spring框架,Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为 了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
第二个是Spring MVC框架,Spring MVC属于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离可以让它们更容易进行定制。
第三个是MyBatis 框架,MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
以上了解框架作用和好处,对于SSM组合框架的使用MyBatis作为持久层,Spring MVC作为表现层等。可能刚开始搭建SSM组合框架也是一件比较棘手的事情,配置xml文件太多了,对于xml不了解使用有点苦恼。Java中文乱码是一直存在问题,对于开发过程中出现中文乱码是常见问题,解决也比较简单,可以百度Java中文乱码,也可以得到解决的方法,编码不同,毕竟它是外国的开发出来的。对于业务的逻辑的分析和数据库的建立以及各种网络接口的调用,比如个人使用的快递鸟的网络接口(API)以及高德地图的网络接口(API),使用接口以及操作接口。