苍穹外卖项目实战(day7-3)-减少购物车商品数量功能完善-记录实战教程、问题的解决方法以及完整代码
摘要:本文实现了一个减少购物车商品数量的功能。在SkyServer项目中,通过四层架构实现:1)User/ShoppingCartController接收减少请求;2)ShoppingCartService定义接口;3)ShoppingCartServiceImpl实现业务逻辑,检查商品存在性并处理数量更新或删除;4)ShoppingCartMapper执行数据库操作。当商品数量大于1时减1,等于
完整资料下载
通过网盘分享的文件:苍穹外卖
链接:
https://pan.baidu.com/s/1JJaFOodXOF_lNJSUiZ6qtw?pwd=ps2t
提取码: ps2t
目录
删减购物车商品数量
(1)需求分析和设计

(2)代码开发
1、user/ShoppingCartController
位置:sky-server/src/main/java/com/sky/controller/user/ShoppingCartController.java
代码:
/**
* 减少购物车商品
* @param shoppingCartDTO
* @return
*/
@PostMapping("/sub")
@ApiOperation("减少购物车商品数量")
public Result sub(@RequestBody ShoppingCartDTO shoppingCartDTO){
log.info("减少购物车商品数量:商品为{}", shoppingCartDTO);
shoppingCartService.deleteById(shoppingCartDTO);
return Result.success();
}
示意图:

2、ShoppingCartService
位置:sky-server/src/main/java/com/sky/service/ShoppingCartService.java
代码:
/**
* 根据id减少购物车商品数量
* @param shoppingCartDTO
*/
void deleteById(ShoppingCartDTO shoppingCartDTO);
示意图:

3、ShoppingCartServiceImpl
位置:sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImpl.java
代码:
/**
* 根据id删除购物车商品数量
* @param shoppingCartDTO
*/
public void deleteById(ShoppingCartDTO shoppingCartDTO) {
//检查购物车商品是否存在
ShoppingCart shoppingCart = new ShoppingCart();
BeanUtils.copyProperties(shoppingCartDTO,shoppingCart);
//获取用户id
Long userId = BaseContext.getCurrentId();
shoppingCart.setUserId(userId);
//查询购物车商品是否存在
List<ShoppingCart> list = shoppingCartMapper.list(shoppingCart);
//如果购物车商品存在,则更新数据(商品数量-1)
if(list != null && list.size() > 0){
//如果商品数量大于1,则更新数量
if(list.get(0).getNumber() > 1){
ShoppingCart cart = list.get(0);//取出第一个商品,也是唯一的
cart.setNumber(cart.getNumber() - 1);
shoppingCartMapper.updateNumberByID(cart);
}else{
//如果商品数量等于1,则删除该商品
shoppingCartMapper.deleteByPrimaryKey(list.get(0).getId());
}
}
}
示意图:

4、ShoppingCartMapper
位置:sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java
代码:
/**
* 根据购物车ID删除购物车数据
* @param id
*/
@Delete("delete from shopping_cart where id = #{id}")
void deleteByPrimaryKey(Long id);
示意图:

(3)功能测试
在微信小程序端删减购物车,若数量减少,减到0商品消失则成功!




火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)