• 千峰商城-springboot项目搭建-78-购物车结算-查询购物车记录接口


    一、购物车记录列表接口:
    根据一个ID的集合,查询购物车记录,实现方式有两种:
    1.动态SQL
    1. <select id="searchShoppingCartById" resultMap="ShopCartMap">
    2. SELECT * FROM shopping_cart WHERE cart_id IN
    3. <foreach collection="list" item="cid" separator="," open="(" close=")">
    4. #{cid}
    5. </foreach>
    6. elect>

     2.tkMapper条件查询

    critera.andIn("cartId",ids);
    

    Service接口:

    1. @Override
    2. public ResultVO listShoppingCartsByCids(List cids) {
    3. Example example = new Example(ShoppingCart.class);
    4. Example.Criteria criteria = example.createCriteria();
    5. criteria.andIn("cartId",cids);
    6. List shoppingCarts = shoppingCartMapper.selectByExample(example);
    7. return null;
    8. }

    这样查询出来的购物车中没有商品图片、商品名称,单价等信息,不满足需求。

    二、数据库实现

    1.ShoppingCartMapper:

        public List<ShoppingCartVO> selectShopcartByCids(List<Integer> cids);
    

    2.映射配置(动态sql):

    1. <select id="selectShopcartByCids" resultMap="ShoppingCartVOMap">
    2. SELECT c.cart_id,
    3. c.product_id,
    4. c.sku_id,
    5. c.user_id,
    6. c.cart_num,
    7. c.cart_time,
    8. c.product_price,
    9. c.sku_props,
    10. p.product_name,
    11. i.url,
    12. s.original_price,
    13. s.sell_price,
    14. s.sku_name
    15. FROM shopping_cart c
    16. INNER JOIN product p
    17. INNER JOIN product_img i
    18. INNER JOIN product_sku s
    19. ON c.product_id=p.product_id
    20. AND i.item_id=p.product_id
    21. AND c.sku_id=s.sku_id
    22. WHERE i.is_main=1 and c.cart_id IN
    23. <foreach collection="cids" item="cid" separator="," open="(" close=")">
    24. #{cid}
    25. </foreach>
    26. elect>

     3.单元测试

    1. @Test
    2. public void testShopCart(){
    3. //List categoryVOS = categoryMapper.selectFirstLevelCategories();
    4. List cids = new ArrayList<>();
    5. cids.add(1);
    6. cids.add(9);
    7. cids.add(15);
    8. List list = shoppingCartMapper.selectShopcartByCids(cids);
    9. System.out.println(list);
    10. }

     三、接口实现

    ShoppingCartMapper:
    
     public List selectShopcartByCids(String cids);
    

     listShoppingCartsByCids:

    
    
        @Override    public ResultVO listShoppingCartsByCids(String cids) { //使用tkMapper查询出来的购物车中没有商品图片、商品名称,单价等信息,不满足需求。// Example example = new Example(ShoppingCart.class);// Example.Criteria criteria = example.createCriteria();// criteria.andIn("cartId",cids);//// List shoppingCarts = shoppingCartMapper.selectByExample(example); String[] arr = cids.split(","); List cartIds = new ArrayList<>(); for (int i = 0; i){ cartIds.add(Integer.parseInt(arr[i])); } List list = shoppingCartMapper.selectShopcartByCids(cartIds); ResultVO resultVO = new ResultVO(ResStatus.OK, "success", list); return resultVO; }
    
     
    

     四、控制层实现:

    ShopcartController:
    
    1. @GetMapping("/listbycids")
    2. @ApiImplicitParam(dataType = "String",name = "cids",value = "选择的购物车记录的id",required = true)
    3. public ResultVO listByCids(String cids, @RequestHeader("token")String token){
    4. ResultVO resultVO = shoppingCartService.listShoppingCartsByCids(cids);
    5. return resultVO;
    6. }

     测试:

  • 相关阅读:
    Docker简易部署RabbitMQ集群、分布式事务解决方案+案例(可靠生产、可靠消费)
    【从零开始学习 SystemVerilog】1.1、SystemVerilog 概述
    算法学习之 背包01问题 , 备战leecode
    基于javaweb的在线服装销售商城系统(java+springboot+vue+mysql)
    【SVM时序预测】基于matlab鲸鱼算法优化支持向量机SVM时序数据预测【含Matlab源码 2250期】
    【RBF预测】基于时空 RBF-NN 实现混沌时间序列预测附matlab代码
    【JAVA入门】网络编程
    springboot+基于Java的果蔬产品销售系统 毕业设计-附源码131110
    【scipy 基础】--聚类
    <初识C++(3)>《C++初阶》
  • 原文地址:https://blog.csdn.net/LYly_B/article/details/126011427