加入购物车和立即购买

details.html

<form    action="addCart" th:object="${goodsForm}" method="post">

<div class="col-sm-6">

<input type="hidden" name="commodityId" th:value="${goodsForm.commodityId}"/>

<h4 class="yh detailsT"><span th:text="${goodsForm.commodityName}">裕道府东北有机小米食用米 粗粮黄小米 五谷杂粮月子米</span></h4>

<dl class="dl-horizontal detailsInfo cf">

<dt>零售价:</dt>

<dd class="price yh"><i>¥</i><span th:text="${goodsForm.retailPrice}">128</span></dd>

<dt>运 费 :</dt>

<dd>8元</dd>

<dt>品  牌:</dt>

<dd><span th:text="${goodsForm.brandName}">日思</span></dd>

<dt>经销商:</dt>

<dd><span th:text="${goodsForm.supplierName}">天津日思优质小站稻开发公司</span></dd>

<dt>规  格:</dt>

<dd>每<span th:text="${#strings.concat(goodsForm.unit).concat(goodsForm.specifications)}">袋5kg</span></dd>

<dt>库  存:</dt>

<dd><span th:text="${goodsForm.stock}">99</span></dd>

<dt>数  量:</dt>

<dd style="height:32px;">

<div class="chooseAmount mt5">

<a onclick="subNum();" href="javascript:void(0)"></a>

<input type="text" name="count" id="count" class="fl inp-t" value="1"/>

<a onclick="addNum();"  href="javascript:void(0)"></a>

</div>

</dd>

</dl>

<p class="mt20"><button class="btnBlue yh "  name="buy">立即购买</button><button class="btnYellow yh" name="add" >加入购物车</button></p>

</div>

</form>

</div>

cartController.java

@RequestMapping(value = "addCart", method = RequestMethod.POST,params="buy")
	    public String alipayConfirmaddCart(Model model, HttpSession session, Device device) {
			GoodsForm goodsForm=new GoodsForm();
//			goodsForm.setType("粮食");
//			model.addAttribute("goodsForm", goodsForm);
			List<GoodsForm> commodityType = goodsService.getType();
	    	goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId());
	    	model.addAttribute("goodsForm", goodsForm);
	    	model.addAttribute("commodityType", commodityType);
	    	log.info("确认支付");
	    	CartForm cartForm = new CartForm();
	    	UVO uvo = (UVO)session.getAttribute("UVO");
	    	if (uvo == null || StringUtils.isEmpty(uvo.getGuestId())) {
	    		return "redirect:/initGuestLogin";
	    	}
	    	cartForm.setGuestId(uvo.getGuestId());
	    	List<CartForm> list = cartService.searchCartList(cartForm);
	    	AlipayForm alipayForm = new AlipayForm();
	    	String body = "您购买的商品如下:";
	    	Double price = 0d;
	    	for (CartForm item : list) {
	    		body = body + "品名:" + item.getCommodityName() +", 数量:"+ item.getCount() +", 总价:"+ String.valueOf(Double.valueOf(item.getCount())*Double.valueOf(item.getRetailPrice())) +";";
	    		price = price + Double.valueOf(item.getCount())*Double.valueOf(item.getRetailPrice());
	    	}
	    	alipayForm.setBody(body);
	    	alipayForm.setOutTradeNo(list.get(0).getCartId());
	    	// 不满88元加8元邮费
	    	if(price < 88) {
	    		price = price + 8;
	    		body = body + "(由于本次订单未满88元,加收您邮费8元)";
	    	}
	    	alipayForm.setPrice(price.toString());
	    	alipayForm.setReceiveAddress(uvo.getAddress());
	    	alipayForm.setReceiveMobile(uvo.getMobile());
	    	alipayForm.setReceiveName(uvo.getGuestName());
	    	alipayForm.setReceivePhone(uvo.getPhone());
	    	alipayForm.setReceiveZip(uvo.getZip());
	    	String host = env.getProperty("host.web");
	    	alipayForm.setShowUrl(host + "/initCart");
	    	alipayForm.setSubject(body);
	    	model.addAttribute("alipayForm", alipayForm);
	    	cartForm.setGuestId(uvo.getGuestId());
	    	model.addAttribute("cartList", cartService.searchCartList(cartForm));
	        if(device.isNormal()) {
	    		return "shop/cart/cart-2";
	    	} else {
	    		return "mobile/alipay/alipayConfirm";
	    	}
	    }

    @RequestMapping(value = "addCart", method = RequestMethod.POST,params="add")
    public String executeAddCart(Model model, HttpSession session, CartForm cartForm, Device device) throws SQLException {
    	log.info("追加购物车");
    	GoodsForm goodsForm = new GoodsForm();
		goodsForm.setCommodityId(cartForm.getCommodityId());
//		goodsForm.setType("粮食");
		List<GoodsForm> commodityType = goodsService.getType();
    	goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId());
    	model.addAttribute("commodityType", commodityType);
		model.addAttribute("goodsForm", goodsService.searchGoods(goodsForm));
    	UVO uvo = (UVO)session.getAttribute("UVO");
    
    	if (uvo == null || StringUtils.isEmpty(uvo.getGuestId()) || uvo.getGuestId().length() > 4) {
    		if (uvo == null || StringUtils.isEmpty(uvo.getGuestId()) || "Guest".equals(uvo.getGuestId().substring(0, 5))) {
    			uvo = new UVO();
    			Date date = new Date();
        		SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss");
        		uvo.setUserId("Guest" + dateformat.format(date));
        		uvo.setGuestId("Guest" + dateformat.format(date));
        		uvo.setUserName("来宾" + dateformat.format(date));
        		log.info("匿名购买商品销售页面初始化。");
        		AlipayForm alipayForm = new AlipayForm();
        		cartForm.setGuestId(uvo.getGuestId());
        		alipayForm = cartService.searchAlipay(cartForm);
        		List<CartForm> cartList = new ArrayList<>();
        		model.addAttribute("cartList", cartList);
        		if (alipayForm == null) {
        			model.addAttribute("message", "库存不够!");
        			if(device.isNormal()) {
        	    		return "shop/goods/goodsDetail";
        	    	} else {
        	    		return "mobile/goods/goodsDetail";
        	    	}
        		}
        		model.addAttribute("alipayForm", alipayForm);
        		if(device.isNormal()) {
        			return "shop/alipay/guestAlipayConfirm";
        		} else {
        			return "mobile/alipay/guestAlipayConfirm";
        		}
    		}
    	}
    
    	cartForm.setUpdateUser(uvo.getGuestName());
		Date date = new Date();
		SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		cartForm.setUpdateTime(dateformat.format(date));
		cartForm.setGuestId(uvo.getGuestId());
		AlipayForm alipayForm = new AlipayForm();
		alipayForm = cartService.searchAlipay(cartForm);
		if (alipayForm == null) {
			model.addAttribute("cartList", cartService.searchCartList(cartForm));
			model.addAttribute("message", "库存不够!");
			if(device.isNormal()) {
	    		return "shop/goods/goodsDetail";
	    	} else {
	    		return "mobile/goods/goodsDetail";
	    	}
		}
    
    	boolean result = cartService.addCart(cartForm);
    	if (!result) {
    		throw new SQLException("追加购物车失败!");
    	}
    	model.addAttribute("cartList", cartService.searchCartList(cartForm));
    	model.addAttribute("list", cartService.searchAlipayHistoryList(cartForm));
    	if(device.isNormal()) {
    		return "shop/cart/cart-1";
    	} else {
    		return "mobile/cart/cartList";
    	}
    }
时间: 2024-10-03 02:02:59

加入购物车和立即购买的相关文章

召回率,准确率,f1分析 某大赛 前4天,通过购物车,收藏夹,购物车&amp;收藏夹购买

前4天,通过购物车购买 precision:0.0153313777615 recall:0.177594903106 f1:0.0282260616417 前4天,通过收藏夹购买 precision:0.00326368668608 recall:0.0270772498009 f1:0.00582524271845 前4天 , 通过购物车&收藏夹购买 precision:0.0166666666667 recall:0.00955667640032 f1:0.0121477982116 前两

ECSHOP购物车商品按购买先后排列顺序

默认ECSHOP购物车里的商品顺序是按照商品ID,由小到大排列的.官网论坛有人建议将购物车里的商品按照购买先后进行排序,这样用户体验会更好些.下面就说一下如何修改:这里是以官方版为基础进行讲解的.打开 /includes/lib_order.php 将 "order by pid, parent_id"; 修改为 "order by rec_id desc,pid,parent_id"';就可以了.这样修改以后,最新加入购物车的商品将显示在最上边,最早加入购物车的商

使用 shopfiy 模板语言,创建产品模板以搭配购物车实现一键购买

shopfiy 的 product 在添加产品时,如果要将产品详情页面与购物车关联,就是在详情页里面直接下单,而不是从详情页通过点击购买按钮,跳到 shopfy stroe ,再从这个位置再跳转到下单页.为了改变这种不停的跳转,且如果网络不好的情况下,很容易流失客户. 操作方法可以简单描述成这样:先在 Product 中添加一个产品模板,在当前产品模板中,关联 Product template 中的 自定义模板,这个自定义模板来自 Online Store 的 Templates: 建立自义定义

转 android 从底部弹出一个popuwindow,渐入渐出效果。我这里是用在购物车需要选择购买选项的操作。

最近要改客户端,需要实现一个从底部弹出的popuwindow,像我这种渣渣android技术,能整出popuwindow但是整不出动画,百度之,记录一下. 从下面这个地址转的 http://blog.csdn.net/yxhuang2008/article/details/42617805 最近因为要用到PopupWindow,所以,就在网上搜索了一下,发现挺多关于这样的文章,现在我把它们整理了一下. 1.Android PopupWindow 的使用技巧,http://www.cnblogs.

python练习——购物车程序

思路: 1.首先生成一个用户字典文件,元素包含用户名,密码,余额,购物车清单.数量 2.导入字典内容,用于验证登录和记录用户信息 3.首页可以选择登录.注册和浏览商品列表 4.注册模块,要根据字典key值判断用户是否存在,存在就返回,不存在创建,密码字数限制没有做,getpass模块在window平台报错,没有写 5.登录模块,根据字典内容验证,验证成功登录,不成功询问是否注册,三次验证失败退出程序 6.登录成功后,判断用户字典中是否存在余额,不存在则要求用户输入金额,并保存在字典中 7.打印商

session实现购物车

为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购物车系统. 为了实现用户移动及pc端的适应,用媒体查询实现了响应式效果(文章最后实现). 程序效果 登录界面: 添加购物车界面(购买数量和总价会在界面动态显示):  可以通过在文本框里输入数字来控制购买数量, 点击删除删除整行,点击清空清所有数据. 不可在文本框里输入小于零或者其他违法字符: 提交订

常见B2C网站购物车的设计

对于大部分B2C网站来说,购物车是网站的咽喉之地,订单是白花花的银子,所有银子都必然流经购物车,购物车不能有失.优秀的购物车设计至少需要完成两项使命:一是方便用户多买货多掏银子:二是帮用户保管好待购的货品,方便下次接着掏银子. 购物车是个较复杂的系统,一般会跟订单.商品.库存.会员和促销等模块有暧昧关系,也算是牵一发而动全身.所以,在不了解购物车前,不宜轻易的指挥你的程序员修改购物车. 说了这么多,进入正题.本文较长,请耐心观看. 什么叫购物车,有何作用? 传统的购物车一般指超市中顾客去结算前暂

python5 购物车

设置商品列表.价格列表.购物车列表 用户输入自己的工资 显示商品和价格列表,供用户选择购买 用户输入想购买的商品 假如工资>=商品价格,则假如购物车,反之不能加入购物车 工资随购买商品价格递减,直到无法购买最便宜的商品时,提示并退出 #!/usr/bin/env python import sys products = ['Car','Iphone','Coffee','Mac','Cloths','Blcyle'] #商品名称 prices = [250000,4999,35,10000,43

php购物车(练习)

题目要求如下: 实现一个简单的购物网站: 需要实现的页面: Index:浏览商品页面,显示商品列表,用户可以点击"购买". ViewCart:查看购物车页面,显示已购买的商品信息,可以点击"删除"已买的商品 ViewAccount:查看个人账户余额 Login:登录页面 实现功能: 显示商品列表 实现购买功能,购买的时候动态显示购物车中的商品数量和商品总价格 点击查看购物车后,显示已购买的商品.注意"购买数量"列,如果对一种商品点击购买多次,其&