当前位置: 首页 > 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);}

在这里插入图片描述

http://www.lryc.cn/news/108102.html

相关文章:

  • 2023年第四届“华数杯”数学建模思路 - 案例:异常检测
  • inline的盒子设置transform不生效
  • 自然语言处理学习笔记(四)————词典分词
  • jsoncpp库和nlohmann-json库实现JSON与字符串类型转换
  • 20230803 函数传参引用
  • IDEA SpringBoot项目引入外部jar并打包
  • ModaHub魔搭社区——阿里云通义千问宣布开源!70亿参数模型上线魔搭社区,免费可商用
  • Jenkins 自动化部署实例讲解,另附安装教程!
  • arcgis字段计算器
  • 数据结构: 线性表(无哨兵位单链表实现)
  • Exploring the Underlying Architecture of CSS3
  • 方差分析||判断数据是否符合正态分布
  • java linq多字段排序时间比较
  • 【c++】rand()随机函数的应用(二)——舒尔特方格数字的生成
  • “深入剖析JVM内部机制:探索Java虚拟机的运行原理“
  • pandas 新增数据列的几种方式
  • linux_驱动_iic总线获取si7006温湿度
  • 虚拟机网络图标不见了
  • CTF:信息泄露.(CTFHub靶场环境)
  • Redis学习总结
  • 云原生全栈体系(二)
  • C++设计模式之建造者设计模式
  • HDFS Erasure coding-纠删码介绍和原理
  • STM32 DHT11
  • 词法分析器
  • 【Spring】Spring之启动过程源码解析
  • 状态模式(State)
  • 【uniapp】样式合集
  • 【Spring框架】SpringBoot统一功能处理
  • 51单片机学习--按键控制流水灯模式定时器时钟