购物车开发说明书
1.功能简介
该购物车存储在seion范围内,主要的存放元素分三类:普通商品、捆绑商品、促销品。所有的单例商品可以根据相关属性的有无填写刻字内容、选择指圈、选择赠品、选择包装、选择贺卡、填写贺卡内容,可以修改普通商品和促销商品的数量,自动计算相关的商品金额;捆绑商品是多件商品的组合销售,起初可以修改数量,但后期龚静负责改版后取消数量修改功能,仅保留点击购买功能,而且捆绑数量不累计,纵向排列。购物车确认支付后,选择配送地址,自动计算运输费用,进入到支付页面,生成订单,后台处理相关数据,发送众多消息(东单信息、CPS信息等)。生成订单后,购物车清空。
2.概要设计说明
1> 不登陆购买
用户在不登陆的情况下可以使用购物车的功能,包括购买各种商品、修改产品数量、清空购物车、填写刻字、选择指圈号等,只有当确认购买的时候,系统检查用户是否出于登陆状态,为登陆则提醒用户登录并跳转到登陆界面。
2> 购买普通商品
普通商品是指单件的普通或预购商品,预购享受一定的低价,
3> 购买捆绑商品
捆绑商品则是多件相配套商品的组合套装,有的商品只能组合销售不能单件购买,不可单独购买的商品进入到购物车,系统会给出提示,并不进入购物车中。 4> 购买促销商品
促销商品是发起的促销活动中,包含的单件商品,促销的功能相对捆绑更强大,但是现阶段购物车仅实现了单件促销品的购买功能。
5> 修改商品数量
此功能捆绑产品不能使用,已经屏蔽掉了(龚静负责改版的时候剔出),普通、促销商品都支持数量的修改,最小数值为“1”。
6> 删除商品
把某件商品、捆绑从购物车中删除
7> 清空购物车
把购物车彻底清空
8> 提交购物车
确认购物车信息,此时如果用户没有登录,系统会自动跳转到登陆页面,用户登录后自行回到购物车提交后的配送信息页面。
9> 自动计算总额
购物车自动计算车中所有商品的总金额
10> 自动计算总数
购物车自动计算车中所有商品的总金额
11> 选择配送地址
系统自动显示用户的历史配送信息,可以直接选择,或在相似相近的配送信息上简单修改,并生成新的配送地址。
12> 快递/自提选择
用户可以选择自取,以节省邮寄费用。
13> 生成订单
生成订单的动作是购物车信息向订单信息转化和实例化的过程,其间涉及到众多
CPS联盟数据的发送、商品数量锁定、活动信息的收集、自主联盟信息的收集等动作
14> 在线支付功能
对形成的新订单进行在线支付,之后成功后自动更新订单状态,用户可以在会员中心时事查看到状态的改动
3,详细设计说明
1〉 设计的实体类
购物车(OohdearCartManager©)
这个实体中包括三个List,分别用来存放普通商品、捆绑商品、促销商品
List products = new ArrayList();// 普通产品
List bindList= new ArrayList();//捆绑产品List promoProducts = new ArrayList();// 促销产品此实体存放在seion中。
Products、promoProducts中存放的是“CartManagerProduct©-普通商品”对象,它是一个内部类,这个内部类主要用于购物车普通产品数据的存储,主要有以下属性:
String id = \"\"; /* 产品ID,由于校验购物车是否已存在该产品Id */
int number = 0; /* 产品数量 */ Commodity product = null; /* 产品对象 */ List serviceList = new ArrayList(); /* 服务集合 */
bindList中主要存放的是“CartManagerBind©-捆绑商品”对象,它是一个内部类,这个内部类主要用于购物车捆绑商品的存储,主要有以下属性:
int number = 0; /* 数量 */
CommodityLargeBind bind = null; /*捆绑对象 */
List serviceList = new ArrayList(); /* 服务集合*/
其中,serviceList 内存放的是产品的特殊服务对象CommodityService©。
CommodityService对象的属性主要包括:
/* 印字刻字 */
/* 指圈号 */
/* 贺卡Id */
/* 贺卡是否使用RMB */
/* 贺卡是否使用积分 */
/* 贺卡赠言 */
/* 贺卡是否使用积分 */
/* 包装对象 */
/* 包装是否使用RMB */
/* 包装是否使用积分 */
/* 赠品列表 */
2〉 主要方法函数
/**
/**
* 计算购物车内所有商品的总数量* */ OohdearCartManager.getShopCartCommodityNum(seion) /*** 计算购物车内所有商品的数量情况 *返回一个MAP(commdityId,count)* */
OohdearCartManager.getCommoditysFormCart(cart)* 计算购物车总金额* */ OohdearCartManager.getShopCartSum(seion)
3〉 主要控制类及其作用
CartManagerAction类
它主要有两个作用
[1]在seion中的购物车对象添加普通商品、预购商品、捆绑商品、促销商品
[2]展示seion中购物车对象的数据(已有产品情况)
BeforePayAction 类
他的主要作用是从购物车页面中收集“特殊服务”的数据,并将数据整合成有效的CommodityService对象,将此对象与相关的购物车内的产品关联,而后保存到购物车中。
ForwardAction 解析购物车中的数据,整合所有的产品数据和特殊服务的数据,形成有效的订单数据。