当前位置: 首页 > news >正文

2.05 购物车后台刷新并显示

一.用户登录添加商品使用cookie存入购物车,并把购物车商品传入到后台

步骤1:创建购物车BO对象

public class ShopcartBO {private String itemId;private String itemImgUrl;private String itemName;private String specId;private String specName;private Integer buyCounts;private String priceDiscount;private String priceNormal;//TODO get和set方法
}

步骤2:创建controller接口购物车数据

@Api(value = "购物车接口controller", tags = {"购物车接口相关的api"})
@RequestMapping("shopcart")
@RestController
public class ShopCatController {@ApiOperation(value = "添加商品到购物车", notes = "添加商品到购物车", httpMethod = "POST")@PostMapping("/add")public JSONResult add(@RequestParam String userId, @RequestBody ShopcartBO shopcartBO, HttpServletRequest request, HttpServletResponse response) {//判断用户id是否为空if (StringUtils.isBlank(userId)) {return JSONResult.errorMsg("");}System.out.println(shopcartBO);// TODO 前端用户在登录的情况下,添加商品到购物车,会同时在后端同步购物车到redis缓存return JSONResult.ok();}
}

在这里插入图片描述

二.根据用户购物车商品请求后台获取最新商品的价格到购物车页面
步骤1:创建购物车VO信息

public class ShopcartVO {private String itemId;private String itemImgUrl;private String itemName;private String specId;private String specName;private String priceDiscount;private String priceNormal;;
}

步骤2:对应mapper.xml中根据商品规格查询对应购物车VO信息

<select id="queryItemsBySpecIds" parameterType="List" resultType="com.imooc.pojo.vo.ShopcartVO">SELECTt_items.id as itemId,t_items.item_name as itemName,t_items_img.url as itemImgUrl,t_items_spec.id as specId,t_items_spec.`name` as specName,t_items_spec.price_discount as priceDiscount,t_items_spec.price_normal as priceNormalFROMitems_spec t_items_specLEFT JOINitems t_itemsONt_items.id = t_items_spec.item_idLEFT JOINitems_img t_items_imgont_items_img.item_id = t_items.idWHEREt_items_img.is_main = 1ANDt_items_spec.id IN<foreach collection="paramsList" index="index" item="specId" open="(" separator="," close=")">#{specId}</foreach>
</select>

步骤3:写mapper对应接口方法

public List queryItemsBySpecIds(@Param(“paramsList”) List specIdsList);

步骤4:创建service接口和实现类

/*** 根据规格ids查询最新的购物车中商品数据(用于刷新渲染购物车中的商品数据)* @param specIds* @return*/
public List<ShopcartVO> queryItemsBySpecIds(String specIds);
@Transactional(propagation = Propagation.SUPPORTS)
@Override
public List<ShopcartVO> queryItemsBySpecIds(String specIds) {String ids[] = specIds.split(",");List<String> specIdsList = new ArrayList<>();Collections.addAll(specIdsList, ids);return itemsMapperCustom.queryItemsBySpecIds(specIdsList);
}

步骤5:编写controller控制访问层

   // 用于用户长时间未登录网站,刷新购物车中的数据(主要是商品价格)@ApiOperation(value = "根据商品规格ids查找最新的商品数据", notes = "根据商品规格ids查找最新的商品数据", httpMethod = "GET")@GetMapping("/refresh")public JSONResult refresh(@ApiParam(name = "itemSpecIds", value = "拼接的规格ids", required = true, example = "1001,1003,1005")@RequestParam String itemSpecIds) {if (StringUtils.isBlank(itemSpecIds)) {return JSONResult.ok();}List<ShopcartVO> list = itemService.queryItemsBySpecIds(itemSpecIds);return JSONResult.ok(list);}

在这里插入图片描述

相关文章:

2.05 购物车后台刷新并显示

一.用户登录添加商品使用cookie存入购物车&#xff0c;并把购物车商品传入到后台 步骤1&#xff1a;创建购物车BO对象 public class ShopcartBO {private String itemId;private String itemImgUrl;private String itemName;private String specId;private String specName;p…...

2023年第四届“华数杯”数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常检测 异常…...

inline的盒子设置transform不生效

目录 如何遇到的问题原因为什么会这样怎么解决 如何遇到的问题 最近在开发过程中&#xff0c;因为需要对一个icon进行旋转&#xff0c;而icon本身&#xff0c;是设置span的伪类来进行的&#xff0c;结果我发现无论怎么设置transform都无法使其生效。 span::before {font-famil…...

自然语言处理学习笔记(四)————词典分词

目录 1.中文分词 2.词典分词 &#xff08;1&#xff09;词的定义 &#xff08;2&#xff09;词典性质——齐夫定律 &#xff08;3&#xff09;词典 &#xff08;4&#xff09;加载词典 &#xff08;5&#xff09;hanlp词典路径 1.中文分词 中文分词&#xff1a;指的是将一…...

jsoncpp库和nlohmann-json库实现JSON与字符串类型转换

在ROS中&#xff0c;可以使用jsoncpp库来实现JSON与字符串类型之间的转换。jsoncpp是ROS自带的一个JSON库&#xff0c;它提供了一些函数来解析和生成JSON数据。 下面是一个使用jsoncpp库实现JSON与字符串类型转换的示例代码&#xff1a; #include <ros/ros.h> #include…...

20230803 函数传参引用

定义多输出变量的函数时&#xff0c;通过直接传参数内存地址在函数内部直接修改外部变量的值。需要定义函数时 在输入参数前加 引用符号 & 。 C 值传递、指针传递、引用传递详解...

IDEA SpringBoot项目引入外部jar并打包

1、首先&#xff0c;我们再pom.xml中导入依赖包时&#xff0c;打包可以正常进行。 但如果我们引入了第三方的外部jar包&#xff08;这里需要先把jar包添加到该项目依赖库中&#xff0c;这里不做演示&#xff09;&#xff0c;如图 2、导致打包时报错&#xff0c;程序包不存在或…...

ModaHub魔搭社区——阿里云通义千问宣布开源!70亿参数模型上线魔搭社区,免费可商用

通义千问开源!8月3日,AI模型社区魔搭ModaHub上架两款开源模型Qwen-7B和Qwen-7B-Chat,阿里云确认其为通义千问70亿参数通用模型和对话模型,两款模型均开源、免费、可商用。在多个权威测评中,通义千问7B模型取得了远超国内外同等尺寸模型的效果,成为当下业界最强的中英文7B…...

Jenkins 自动化部署实例讲解,另附安装教程!

【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客 也可以结合这个互补看 前言 你平常在做自己的项目时&#xff0c;是否有过部署项目太麻烦的想法&#xff1f;如果你是单体项目&#xff0c;可能没什么感触&#xff0c;但如果你是微服务项目&#xff0c;相…...

arcgis字段计算器

1、两字段叠加。要求待叠加的字段类型为文本或字符串类型。如下&#xff1a; 2、字符串部分提取。...

数据结构: 线性表(无哨兵位单链表实现)

文章目录 1. 线性表的链式表示: 链表1.1 顺序表的优缺点1.2 链表的概念1.3 链表的优缺点1.4 链表的结构 2. 单链表的定义2.1 单链表的结构体2.2 接口函数 3. 接口函数的实现3.1 动态申请一个结点 (BuySListNode)3.2 单链表打印 (SListPrint)3.3 单链表尾插 (SListPushBack)3.4 …...

Exploring the Underlying Architecture of CSS3

引言 在现代的网页设计中&#xff0c;CSS&#xff08;层叠样式表&#xff09;起着至关重要的作用。CSS3作为最新的CSS标准&#xff0c;引入了许多令人兴奋的功能和特性。但是&#xff0c;要真正理解CSS3的底层架构实现原理&#xff0c;对于前端开发者来说&#xff0c;是非常重…...

方差分析||判断数据是否符合正态分布

方差分析练习题 练习学习笔记&#xff1a; &#xff08;1&#xff09; 标准差和标准偏差、均方差是一个东西。标准误差和标准误是一个东西。这两个东西有区别。 &#xff08;2&#xff09;单因素方差分析&#xff08;MATLAB求解&#xff09; &#xff08;3&#xff09;使用an…...

java linq多字段排序时间比较

public static void main(String[] args) {//100万条数据List<CrmInvestSaleUserCount> waitAssignUserList new ArrayList<>();for (int i 0; i < 1000000; i) {waitAssignUserList.add(new CrmInvestSaleUserCount().setSales_username("test" i…...

【c++】rand()随机函数的应用(二)——舒尔特方格数字的生成

目录 一、舒尔特方格简介 二、如何生成舒尔特方格 &#xff08;一&#xff09;线性同余法 1、利用线性同余法生成随机数序列的规律 (1) 当a和c选取合适的数时&#xff0c;可以生成周期为m的随机数序列 (2) 种子seed取值也是有周期的 2、利用线性同余法生成5阶舒尔特方格…...

“深入剖析JVM内部机制:探索Java虚拟机的运行原理“

标题&#xff1a;深入剖析JVM内部机制&#xff1a;探索Java虚拟机的运行原理 摘要&#xff1a;本文将深入探讨Java虚拟机&#xff08;JVM&#xff09;的内部机制&#xff0c;包括类加载、内存管理、垃圾回收、即时编译等关键概念和原理&#xff0c;帮助开发者更好地理解JVM的运…...

pandas 新增数据列的几种方式

准备数据 将下面的数据存到csv中 ymd,bWendu,yWendu,tianqi,fengxiang,fengli,aqi,aqiInfo,aqiLevel 2018-01-01,3℃,-6℃,晴~多云,东北风,1-2级,59,良,2 2018-01-02,2℃,-5℃,阴~多云,东北风,1-2级,49,优,1 2018-01-03,2℃,-5℃,多云,北风,1-2级,28,优,1 2018-01-04,0℃,-8℃…...

linux_驱动_iic总线获取si7006温湿度

应用层si7006.c #include<stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <arpa/inet.h>…...

虚拟机网络图标不见了

有3台虚拟机之前正常运行的&#xff0c;有一天打开虚拟机发现2台虚拟机的网络连接图标不见了&#xff0c;也ping不通另外两台。 解决&#xff1a;在终端执行以下命令&#xff0c;即可ping通 [roothadoop103 ~]# sudo nmcli network off [roothadoop103 ~]# sudo nmcli network…...

CTF:信息泄露.(CTFHub靶场环境)

CTF&#xff1a;信息泄露.&#xff08;CTFHub靶场环境&#xff09; “ 信息泄露 ” 是指网站无意间向用户泄露敏感信息&#xff0c;泄露了有关于其他用户的数据&#xff0c;例如&#xff1a;另一个用户名的财务信息&#xff0c;敏感的商业 或 商业数据 &#xff0c;还有一些有…...

DwarFS库开发指南:如何集成reader、writer和extractor API

DwarFS库开发指南&#xff1a;如何集成reader、writer和extractor API 【免费下载链接】dwarfs A fast high-compression read-only file system for Linux, FreeBSD, macOS and Windows 项目地址: https://gitcode.com/gh_mirrors/dw/dwarfs DwarFS是一款适用于Linux、…...

部署Doris存算一体集群

部署Doris存算一体集群 1. 下载 doris安装包 https://doris.apache.org/zh-CN/download 2. 安装jdk&#xff08;所有节点执行&#xff09; 2.1 解压 tar -zxvf jdk-17.0.17_linux-x64_bin.tar.gz -C /data/java配置环境变量 vim /etc/profile增加如下配置 export JAV…...

推荐系统中的个性化算法与效果评估

推荐系统中的个性化算法与效果评估 在信息爆炸的时代&#xff0c;推荐系统已成为互联网平台提升用户体验的关键技术。个性化算法通过分析用户行为、兴趣和偏好&#xff0c;为用户精准匹配内容&#xff0c;而效果评估则衡量算法的实际表现。本文将围绕推荐系统中的个性化算法与…...

Qwen3-0.6B-FP8部署教程:防火墙/代理环境下离线模型加载解决方案

Qwen3-0.6B-FP8部署教程&#xff1a;防火墙/代理环境下离线模型加载解决方案 你是不是也遇到过这种情况&#xff1a;想在公司内网或者网络受限的环境里部署一个大模型&#xff0c;结果第一步下载模型就卡住了&#xff1f;要么是网络代理设置太复杂&#xff0c;要么是防火墙直接…...

VeraCrypt加密U盘实战:从创建加密卷到日常使用的完整指南

VeraCrypt加密U盘实战&#xff1a;从零开始打造移动数据保险箱 在这个数据泄露事件频发的时代&#xff0c;我们随身携带的U盘和SD卡就像一个个行走的数据炸弹。想象一下&#xff0c;当你遗失了存有客户资料、财务报告或个人隐私的移动存储设备时&#xff0c;那种头皮发麻的感觉…...

如何通过智能激活脚本告别Windows与Office激活烦恼

如何通过智能激活脚本告别Windows与Office激活烦恼 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而困扰吗&#xff1f;或者Office软件突然变为只读模式&…...

避开这3个坑!用Unity播放360视频时Shader和RenderTexture的隐藏陷阱

避开这3个坑&#xff01;用Unity播放360视频时Shader和RenderTexture的隐藏陷阱 全景视频正在成为虚拟现实、在线教育和数字营销领域的热门媒介。作为Unity开发者&#xff0c;你可能已经尝试过使用内置的Video Player组件来播放360度视频&#xff0c;但很快就会发现这条路并不像…...

跨模型、跨Agent、跨时序的追踪难题全解析,深度解读分布式因果推断追踪协议v2.1

第一章&#xff1a;AIAgent架构全链路追踪方案 2026奇点智能技术大会(https://ml-summit.org) AI Agent系统具备多阶段决策、工具调用、记忆检索与外部服务协同等复杂行为特征&#xff0c;传统基于HTTP请求的链路追踪&#xff08;如OpenTracing&#xff09;难以准确刻画其内部…...

全文降AI率保姆级攻略:用嘎嘎降AI从60%降到5%

全文降AI率保姆级攻略&#xff1a;用嘎嘎降AI从60%降到5% 论文交上去&#xff0c;导师发回来一句"AI率62%&#xff0c;重新改"。这种场景在2026年的毕业季里太常见了。 AI率60%是什么概念&#xff1f;意味着你论文里超过一半的内容被检测系统判定为AI生成。不管你是真…...

React 20与Server Components生态:2026年全新实践

前言 2026年&#xff0c;React生态迎来重大更新。React 20正式版发布&#xff0c;Server Components从实验性功能走向生产环境。本文将深入解析新特性&#xff0c;并分享大型项目迁移实战经验。 正文 一、React 20核心更新 1. Server Components正式版 零Bundle Size组件直接访…...