千峰商城-springboot项目搭建-73-购物车列表数据库实现

一、流程分析
 
  

 

 

二、数据库实现

SQL:

#根据用户id查询当前用户的购物车信息
SELECT c.*,p.product_name,i.url
FROM shopping_cart c 
INNER JOIN product p
INNER JOIN product_img i
ON c.product_id=p.product_id AND i.item_id=p.product_id
WHERE user_id=14 AND i.is_main=1;

 

 

实体类:

ShoppingCartVO 
//新增productName,productImg属性
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ShoppingCartVO {

    private Integer cartId;
    private String productId;
    private String skuId;
    private String userId;
    private String cartNum;
    private String cartTime;
    private BigDecimal productPrice;
    private String skuProps;
    
    private String productName;
    private String productImg;

    
}

 

三、接口实现

 1.接口定义查询方法:

ShoppingCartMapper :
@Repository
public interface ShoppingCartMapper extends GeneralDAO<ShoppingCart> {
    
    public List<ShoppingCartVO> selectShopcartByUserId(int userId);
}

 

2.映射配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.fmmall.dao.ShoppingCartMapper">
  <resultMap id="BaseResultMap" type="com.qfedu.fmmall.entity.ShoppingCart">
    <!--
      WARNING - @mbg.generated
    -->
    <id column="cart_id" jdbcType="INTEGER" property="cartId" />
    <result column="product_id" jdbcType="VARCHAR" property="productId" />
    <result column="sku_id" jdbcType="VARCHAR" property="skuId" />
    <result column="user_id" jdbcType="VARCHAR" property="userId" />
    <result column="cart_num" jdbcType="VARCHAR" property="cartNum" />
    <result column="cart_time" jdbcType="VARCHAR" property="cartTime" />
    <result column="product_price" jdbcType="DECIMAL" property="productPrice" />
    <result column="sku_props" jdbcType="VARCHAR" property="skuProps" />
  </resultMap>

  <resultMap id="ShoppingCartVOMap" type="com.qfedu.fmmall.entity.ShoppingCartVO">
    <!--
      WARNING - @mbg.generated
    -->
    <id column="cart_id" jdbcType="INTEGER" property="cartId" />
    <result column="product_id" jdbcType="VARCHAR" property="productId" />
    <result column="sku_id" jdbcType="VARCHAR" property="skuId" />
    <result column="user_id" jdbcType="VARCHAR" property="userId" />
    <result column="cart_num" jdbcType="VARCHAR" property="cartNum" />
    <result column="cart_time" jdbcType="VARCHAR" property="cartTime" />
    <result column="product_price" jdbcType="DECIMAL" property="productPrice" />
    <result column="sku_props" jdbcType="VARCHAR" property="skuProps" />
    <result column="product_name" jdbcType="DECIMAL" property="productName" />
    <result column="url" jdbcType="VARCHAR" property="productImg" />
    
  </resultMap>
  
  <select id="selectShopcartByUserId" resultMap="ShoppingCartVOMap">
    SELECT c.cart_id,
           c.product_id,
           c.sku_id,
           c.user_id,
           c.cart_num,
           c.cart_time,
           c.product_price,
           c.sku_props,
           p.product_name,
           i.url
    FROM shopping_cart c
    INNER JOIN product p
    INNER JOIN product_img i
    ON c.product_id=p.product_id 
    AND i.item_id=p.product_id
    WHERE user_id=#{userId} AND i.is_main=1;
  </select>
</mapper>

 

 

 3.测试:

   @Autowired
    private ShoppingCartMapper shoppingCartMapper;

    @Test
    public void testShoppingCart(){
        List<ShoppingCartVO> shoppingCartVOS = shoppingCartMapper.selectShopcartByUserId(1);
        System.out.println(shoppingCartVOS);
    }

 

 

 

 

 

 

 

 
 
posted @ 2022-07-23 15:57  临易  阅读(65)  评论(0编辑  收藏  举报