首页 > 其他分享 >springboot整合项目-商城项目展示购物车勾选到支付页面并展示功能

springboot整合项目-商城项目展示购物车勾选到支付页面并展示功能

时间:2022-11-10 11:22:38浏览次数:43  
标签:springboot 展示 list 勾选到 tr 购物车 num price 页面

显示勾选的购物车数据

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>

标签:springboot,展示,list,勾选到,tr,购物车,num,price,页面
From: https://www.cnblogs.com/wiseleer/p/16876445.html

相关文章

  • springboot启动直接退出显示Process finished with exit code 1
    SprintBoot项目启动后直接退出(未打印有关SP的日志)一、解决思路尝试在main方法前面加了一行打印语句:System.out.println(“SpringBootStart…”);//正常运行的打印......
  • 基于Docker部署Springboot工程
    主要参考文章:https://blog.csdn.net/qq_33285112/article/details/109726538https://www.cnblogs.com/linnuo/p/15699121.html一、首先基于Alpine构建Java最小运行环境......
  • springboot文件上传大小限制设置
    一般的web系统基本都会有文件上传功能,文件上传必然涉及到一个问题,就是文件大小,太大的文件不仅传输速度慢,而且对服务器压力巨大,后期的下载和保存都是一种考验。所以有了文......
  • 笔记本电脑的wifi列表无法正常展示时的解决方法(个人经验)
    方法一、把笔记本所有的外接数据线全部拔除,然后长按开机键强制关机,然后开机,就行了方法二、按以下步骤操作1、打开设置键2、打开网络3、进行网络重置,等5分钟电脑重启......
  • 01-SpringBoot注解
    SpringBoot注解Spring常用注解配置注解含义@Configuration定义一个类是Spring配置类@Bean配置自定义的Bean,如DruidDataSource@Componen......
  • SpringBoot 01: JavaConfig + @ImportResource + @PropertyResource
    springboot的前置知识:通过注解创建对象和读取配置文件1.JavaConfig设计思想使用java类作为xml配置文件的替代,是配置spring容器的纯java的方式可以创建java对象并把......
  • springBoot实现全局跨域
    importlombok.extern.slf4j.Slf4j;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.s......
  • springboot+vue前后端分离国际化
    一,概要前端使用vue-i18n框架来实现国际化功能,国际化数据存储在数据库里,由后端接口提供,使用pinia缓存。后端使用redis缓存,并使用拦截器对响应中的提示信息做国际化。二......
  • SpringBoot中遇到的一些问题总结,持续更新中(偶尔个人的生活日记O)
    项目问题总结,还有个人简单日记一、2019年6月18日上海中雨早上打伞走路上班,湿了鞋子,穿了一天,把小风扇放脚下,吹了一天,脚还是像在水里游泳一样,Ha 1、关于SpringDataJpa的使......
  • Springboot项目,MAVEN打包后的目录结构
    一、原项目结构二、Maveninstall之后的目录结构,本来是一个Jar,这里是我解压后的三、还有关于Lombok包下,@Data,做了什么工作,图示......