android水果购物车,实现购物车功能

# 购物车

购物车功能的实现思路:

可以将购物车看成是一个类,在数据库中创建购物车表,往购物车添加商品的时候相当于在表中插入一条数据

需要注意的是:添加商品的时候需要记录是哪个人添加的商品,这时候,微信提供接口可以直接获取用户信息。

获取用户信息步骤:在项目的domain中加入Subscriber.groovy和SubscriberCookie.groovy两个类,在controller中加入SubscriberPortalController.groovy类。

在conf目录下配置BuildConfig,在Plugins节点下加入:

compile ':cookie:0.51'

在repositories节点下修改为:

inherits true // Whether to inherit repository definitions from plugins

grailsPlugins()

grailsHome()

grailsCentral()

mavenLocal()

mavenCentral()

grailsRepo "https://grails.org/plugins"

// uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories

mavenRepo "http://snapshots.repository.codehaus.org"

mavenRepo "http://repository.codehaus.org"

mavenRepo "http://download.java.net/maven/2/"

mavenRepo "http://repository.jboss.com/maven2/"

配置完成之后,只需要在需要调用用户的信息的方法调用beforeIntercetor方法就可以得到用户信息:

![2015-08-10/55c80c5b28196](https://box.kancloud.cn/2015-08-10_55c80c5b28196.png)

beforeInterceptor()方法是固有名称的方法,加入类中表示在执行实际操作的方法之前先执行beforeInterceptor方法。

购物车的表现形式是以网页打开的,所以不要与第三方服务器交互,我们在后台编写的时候只需要创建一个控制器类,得到所有的购物车信息并与数据库进行交互。

In Grails, whenever you want a new page you just create a new controller action for it.

在显示网页之前需要得到购物车的所有信息,所以创建showCartController,定义showCart()方法。根据用户的信息取得该用户的所有的购买水果的详情。

def li = ShopCart.findAllBySubscriber(subscriber)

在gsp页面使用《g:each>进行循环遍历单个水果的信息。购物车的物品有添加数量和删除该水果的操作,则使用form表单进行提交,controller表示提交到哪一个控制器来处理表单数据,action表示控制器中的实现的方法

![2015-08-09/55c7026bdf842](https://box.kancloud.cn/2015-08-09_55c7026bdf842.png)

如果购物车中的商品信息太多的话,页面显示不宜过长,则需要进行分页显示。分页功能:

def max = params.int('max')?params.int('max') : 2 //页面显示的最多的条数

params.max = max

def offset = params.int('offset')?params.int('offset'):0 //偏移量

def total = offset+max

//当offset大于总的商品数目的时候,直接显示最后一页的数据

if(offset>li.size()){

offset = (total/max)*max

}

if(total>=li.size()){

total = li.size()

}

[li:li.subList(offset, total), showCartTotal: li.size()]

在gsp页面的显示为:

![2015-08-10/55c8108b8ba84](https://box.kancloud.cn/2015-08-10_55c8108b8ba84.png)

## 购物车结算功能:

实现的基本步骤:根据text框中填写的数据,取得对应得水果价格,先计算出购买的每一种水果的价格,总价格为每一种水果的价格总和。

在实现数量加减的时候,就计算每一种水果购买需要的金额。所以在jia()和jian()函数里面进行操作。

计算金额 = 数量*单价,在gsp页面可以已知水果的单价,只要获取水果的数量就可以的。

![2015-08-11/55c950d678dde](https://box.kancloud.cn/2015-08-11_55c950d678dde.png)

在gsp页面是循环输出每一种水果的信息,要得到不同的水果和价格。所以在script中通过document.getElementById的时候,页面传入的id要为不同的id值,才能取到不同的水果。id是唯一值

![2015-08-11/55c951f09a586](https://box.kancloud.cn/2015-08-11_55c951f09a586.png)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值