显示勾选的购物车数据

1.持久层

1.规划sql语句

用户在购物车列表页面通过随机勾选相关的商品,在点击结算俺就后,跳转到结算页面,在这个页面需要展示用户在上个页面说勾选的购物车对应的数据。列表的展示,而展示的内容还是在购物车里

SELECT
	cid,
	uid,
	pid,
	t_cart.price,
	t_cart.num,
	t_product.title,
	t_product.price AS realPrice,
	t_product.image
FROM
	t_cart
	LEFT JOIN t_product ON t_cart.pid = t_product.id 
WHERE
	cid IN (?, ?, ?)
ORDER BY
	t_cart.created_time DESC

接口与抽象方法

Lis
findVOByCid(Integer cid)

2.实现抽象方法

 /**
     * 结算页面查询购物车里被选中的商品
     * @param uid
     * @param cids
     * @return
     */
    @Override
    public List<CartVo> getVOByCid(Integer uid, Integer[] cids) {
        List<CartVo> list = cartMapper.findVOByCid(cids);
        Iterator<CartVo> iterator = list.iterator();
        while (iterator.hasNext()) {
            CartVo next = iterator.next();
            if (!next.getUid().equals(uid)){
                list.remove(next);
            }
        }
        return list;
    }

控制层

1.请求设计

/carts/list
Integer cids HttpSession session
/JsonResult<List
>

2.实现方法


    /**
     * 刷新购物车列表
     * @param ssession
     * @return
     */
    @RequestMapping({"list"})
    public JsonResult<List<CartVo>> getVoByCid(Integer[] cids,HttpSession ssession){
        List<CartVo> voByCid = cartService.getVOByCid(getUidFromSession(ssession), cids);
        return new JsonResult<List<CartVo>>(OK,voByCid);
    }

前端页面

<script type="text/javascript">
			$(document).ready(function() {
				showCarts();
			})
			function showCarts() {
				$("#cart-list").empty();
				$.ajax({
					url :"/carts/list",
					type:"post",
					data:location.search.substring(1),
					dataType:"json",
					success : function(json) {
						if (json.state == 200) {
							let list = json.data;
							let allCount = 0;
							let allPrice = 0;
							for (let i = 0; i < list.length ; i++) {
								//TODO
								let tr = '<tr>\n' +
										'\t\t\t\t\t\t\t\t\t\t\t<td><img src="..#{image}collect.png" class="img-responsive" /></td>\n' +
										'\t\t\t\t\t\t\t\t\t\t\t<td>#{title}</td>\n' +
										'\t\t\t\t\t\t\t\t\t\t\t<td>¥<span>#{price}</span></td>\n' +
										'\t\t\t\t\t\t\t\t\t\t\t<td>#{num}</td>\n' +
										'\t\t\t\t\t\t\t\t\t\t\t<td><span>#{totalPrice}</span></td>\n' +
										'\t\t\t\t\t\t\t\t\t\t</tr>';
								tr = tr.replace(/#{image}/g,list[i].image);
								tr = tr.replace(/#{title}/g,list[i].title);
								tr = tr.replace(/#{price}/g,list[i].price);
								tr = tr.replace(/#{num}/g,list[i].num);
								tr = tr.replace(/#{totalPrice}/g,list[i].price *list[i].num);

								$("#cart-list").append(tr);
								allCount += list[i].num;
								allPrice +=list[i].price * list[i].num;
							}
							//更新支付页面的总价和总件数
							$("#all-count").html(allCount);
							$("#all-price").html(allPrice);

						} else {
							alert("用户收货信息加载失败");
						}
					}
				});
			}
		</script>

原文地址:http://www.cnblogs.com/wiseleer/p/16876445.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性