<?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.matrix.system.shopXcx.dao.ShopShoppingCartDao">
|
|
|
<!-- 定义ShopShoppingCart 的复杂关联map -->
|
<resultMap type="com.matrix.system.shopXcx.bean.ShopShoppingCart" id="ShopShoppingCartMap">
|
<id property="cartId" column="cart_id" />
|
<result property="createBy" column="create_by" />
|
<result property="createTime" column="create_time" />
|
<result property="updateBy" column="update_by" />
|
<result property="updateTime" column="update_time" />
|
<result property="cartUserId" column="cart_user_id" />
|
<result property="cartProductId" column="cart_product_id" />
|
<result property="cartSkuId" column="cart_sku_id" />
|
<result property="cartNumber" column="cart_number" />
|
<result property="title" column="title" />
|
<result property="price" column="price" />
|
<result property="imgMobile" column="img_mobile" />
|
<result property="imgPc" column="img_pc" />
|
<result property="buyLimit" column="buy_limit" />
|
<result property="name" column="name" />
|
<result property="stock" column="stock" />
|
<result property="nickName" column="nick_name" />
|
<result property="isSelected" column="isSelected" />
|
<result property="shopId" column="shop_id" />
|
<result property="companyId" column="company_id" />
|
<result property="cartType" column="cart_type" />
|
</resultMap>
|
|
|
<!-- 定义ShopShoppingCart 的简单map ,本map不添加其他的关联属性 -->
|
<resultMap type="com.matrix.system.shopXcx.bean.ShopShoppingCart" id="ShopShoppingCartSimpleMap">
|
<id property="cartId" column="cart_id" />
|
<result property="createBy" column="create_by" />
|
<result property="createTime" column="create_time" />
|
<result property="updateBy" column="update_by" />
|
<result property="updateTime" column="update_time" />
|
<result property="cartUserId" column="cart_user_id" />
|
<result property="cartProductId" column="cart_product_id" />
|
<result property="cartSkuId" column="cart_sku_id" />
|
<result property="cartNumber" column="cart_number" />
|
<result property="isSelected" column="isSelected" />
|
<result property="shopId" column="shop_id" />
|
<result property="companyId" column="company_id" />
|
<result property="cartType" column="cart_type" />
|
|
</resultMap>
|
|
<!-- 字段sql -->
|
<sql id="columns">
|
create_by,
|
create_time,
|
update_by,
|
update_time,
|
cart_id,
|
cart_user_id,
|
cart_product_id,
|
cart_sku_id,
|
cart_number,
|
isSelected,
|
shop_id,
|
company_id,
|
cart_type
|
|
</sql>
|
|
<!-- 属性sql -->
|
<sql id="propertys">
|
#{item.createBy},
|
now(),
|
#{item.updateBy},
|
now(),
|
#{item.cartId},
|
#{item.cartUserId},
|
#{item.cartProductId},
|
#{item.cartSkuId},
|
#{item.cartNumber},
|
#{item.isSelected},
|
#{item.shopId},
|
#{item.companyId},
|
#{item.cartType}
|
|
</sql>
|
|
<!-- where sql -->
|
<sql id="where_sql">
|
|
<if test="record!=null">
|
<if test="(record.cartId!=null and record.cartId!='') or (record.cartId!='' and record.cartId==0) ">
|
and cart_id = #{record.cartId}
|
</if>
|
<if test="(record.cartUserId!=null and record.cartUserId!='') or (record.cartUserId!='' and record.cartUserId==0) ">
|
and cart_user_id = #{record.cartUserId}
|
</if>
|
<if test="(record.cartProductId!=null and record.cartProductId!='') or (record.cartProductId!='' and record.cartProductId==0) ">
|
and cart_product_id = #{record.cartProductId}
|
</if>
|
<if test="(record.cartSkuId!=null and record.cartSkuId!='') or (record.cartSkuId!='' and record.cartSkuId==0) ">
|
and cart_sku_id = #{record.cartSkuId}
|
</if>
|
<if test="(record.cartNumber!=null and record.cartNumber!='') or (record.cartNumber!='' and record.cartNumber==0) ">
|
and cart_number = #{record.cartNumber}
|
</if>
|
<if test="(record.name!=null and record.name!='') or (record.name!='' and record.name==0) ">
|
and s.NAME like concat('%',#{record.name},'%')
|
</if>
|
<if test="(record.title!=null and record.title!='') or (record.title!='' and record.title==0) ">
|
and p.title like concat('%',#{record.title},'%')
|
</if>
|
<if test="(record.nickName!=null and record.nickName!='') or (record.nickName!='' and record.nickName==0) ">
|
and u.nick_name like concat('%',#{record.nickName},'%')
|
</if>
|
<if test="(record.cartBeginTime!=null and record.cartBeginTime!='')">
|
and date_format(c.create_time, '%Y-%m-%d') >= #{record.cartBeginTime}
|
</if>
|
<if test="(record.cartEndTime!=null and record.cartEndTime!='')">
|
and #{record.cartEndTime} >= date_format(c.create_time, '%Y-%m-%d')
|
</if>
|
<if test="(record.isSelected!=null and record.isSelected!='')">
|
and #{record.isSelected} >= date_format(c.isSelected, '%Y-%m-%d')
|
</if>
|
<if test="(record.shopId!=null and record.shopId!='') or (record.shopId!='' and record.shopId==0) ">
|
and shop_id = #{record.shopId}
|
</if>
|
|
<if test="record.companyId != null and record.companyId !='' ">
|
and c.company_id = #{record.companyId}
|
</if>
|
|
|
</if>
|
|
</sql>
|
|
|
<!-- 插入方法 -->
|
<insert id="insert" parameterType="com.matrix.system.shopXcx.bean.ShopShoppingCart"
|
useGeneratedKeys="true" keyProperty="item.cartId">
|
INSERT INTO shop_shopping_cart (
|
<include refid="columns"></include>
|
)
|
VALUES (
|
<include refid="propertys"></include>
|
)
|
</insert>
|
|
|
|
<!-- 批量插入 -->
|
<insert id="batchInsert" parameterType="java.util.List">
|
INSERT INTO shop_shopping_cart (
|
<include refid="columns"></include>
|
)
|
VALUES
|
<foreach collection="list" item="item" index="index" separator=",">(
|
<include refid="propertys"></include>
|
)</foreach>
|
</insert>
|
|
|
|
|
|
<!-- 根据Map更新 部分更新 -->
|
<update id="updateByMap" parameterType="java.util.HashMap" >
|
UPDATE shop_shopping_cart
|
<set>
|
<if test="_parameter.containsKey('cartUserId')">
|
cart_user_id = #{cartUserId},
|
</if>
|
<if test="_parameter.containsKey('cartProductId')">
|
cart_product_id = #{cartProductId},
|
</if>
|
<if test="_parameter.containsKey('cartSkuId')">
|
cart_sku_id = #{cartSkuId},
|
</if>
|
<if test="_parameter.containsKey('cartNumber')">
|
cart_number = #{cartNumber},
|
</if>
|
<if test="_parameter.containsKey('isSelected')">
|
isSelected = #{isSelected},
|
</if>
|
<if test="_parameter.containsKey('shopId')">
|
shop_id = #{shopId},
|
</if>
|
</set>
|
WHERE cart_id=#{cartId}
|
</update>
|
|
|
<!-- 根据对象更新 部分更新 -->
|
<update id="updateByModel" parameterType="Integer">
|
UPDATE shop_shopping_cart
|
<set>
|
<if test="record.cartUserId != null and record.cartUserId != '' ">
|
cart_user_id = #{record.cartUserId},
|
</if>
|
<if test="record.cartProductId != null ">
|
cart_product_id = #{record.cartProductId},
|
</if>
|
<if test="record.cartSkuId != null ">
|
cart_sku_id = #{record.cartSkuId},
|
</if>
|
<if test="record.cartNumber != null ">
|
cart_number = #{record.cartNumber},
|
</if>
|
<if test="record.isSelected != null ">
|
isSelected = #{record.isSelected},
|
</if>
|
<if test="record.shopId !=null and record.shopId != ''">
|
and a.shop_Id = #{record.shopId}
|
</if>
|
</set>
|
WHERE cart_id=#{record.cartId}
|
</update>
|
|
|
<update id="updateAllSelected" >
|
|
update shop_shopping_cart set isSelected = #{isSelected} where shop_id=#{shopId} and cart_user_id=#{openId}
|
|
</update>
|
|
|
|
<!-- 批量删除 -->
|
<delete id="deleteByIds" parameterType="java.util.List">
|
delete from shop_shopping_cart where cart_id in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</delete>
|
|
<!-- 根据id删除-->
|
<delete id="deleteById" parameterType="Integer">
|
DELETE FROM shop_shopping_cart
|
where cart_id=#{cartId}
|
</delete>
|
|
|
|
|
<!-- 根据对象删除-->
|
<delete id="deleteByModel" parameterType="com.matrix.system.shopXcx.bean.ShopShoppingCart">
|
DELETE FROM shop_shopping_cart
|
<where>
|
<include refid="where_sql" ></include>
|
</where>
|
</delete>
|
|
<delete id="deleteUserSelectCart">
|
delete from shop_shopping_cart where isSelected=1 and cart_user_id=#{openId}
|
</delete>
|
|
|
<!-- 分页查询 -->
|
<select id="selectInPage" resultMap="ShopShoppingCartMap">
|
select
|
c.create_by,
|
c.create_time,
|
c.update_by,
|
c.update_time,
|
c.cart_id,
|
c.cart_user_id,
|
c.cart_product_id,
|
c.cart_sku_id,
|
c.cart_number,
|
c.isSelected,
|
c.shop_id,
|
p.title,
|
p.price,
|
p.img_mobile,
|
p.img_pc,
|
u.nick_name,
|
s.NAME,
|
c.cart_type,
|
from shop_shopping_cart c
|
LEFT JOIN shop_product p ON c.cart_product_id = p.id
|
LEFT JOIN shop_sku s ON c.cart_sku_id = s.id
|
LEFT JOIN sys_vip_info u ON c.cart_user_id = u.id
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
|
order by c.create_time desc
|
<if test="pageVo.offset >=0 and pageVo.limit >0">
|
limit
|
#{pageVo.offset},#{pageVo.limit}
|
</if>
|
</if>
|
</select>
|
|
<!-- 查询总条数 -->
|
<select id="selectTotalRecord" parameterType="long" resultType="java.lang.Integer">
|
select count(*)
|
from shop_shopping_cart c
|
LEFT JOIN shop_product p ON c.cart_product_id = p.id
|
LEFT JOIN shop_sku s ON c.cart_sku_id = s.id
|
LEFT JOIN sys_vip_info u ON c.cart_user_id = u.id
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
|
<!-- 根据id查询-->
|
<select id="selectById" resultMap="ShopShoppingCartMap">
|
select
|
<include refid="columns" ></include>
|
from shop_shopping_cart
|
where cart_id=#{cartId}
|
</select>
|
|
<!-- 根据用户id查询-->
|
<select id="selectByCartUserId" resultMap="ShopShoppingCartMap">
|
select
|
c.create_by,
|
c.create_time,
|
c.update_by,
|
c.update_time,
|
c.cart_id,
|
c.cart_user_id,
|
c.cart_product_id,
|
c.cart_sku_id,
|
c.cart_number,
|
c.isSelected,
|
c.shop_id,
|
p.title,
|
s.price,
|
p.img_mobile,
|
p.img_pc,
|
p.buy_limit,
|
s.NAME,
|
s.stock,
|
s.score_count,
|
s.score_price,
|
c.cart_type
|
from shop_shopping_cart c
|
LEFT JOIN shop_product p ON c.cart_product_id = p.id
|
LEFT JOIN shop_sku s ON c.cart_sku_id = s.id
|
where
|
c.shop_id=#{shopId}
|
and p.STATUS = 1
|
and p.del_flag = 2
|
and c.cart_user_id = #{cartUserId}
|
order by c.create_time desc
|
</select>
|
|
<!-- 查询产品的限购数量和库存数量 -->
|
<select id="selectBuyLimit" resultMap="ShopShoppingCartMap" >
|
select p.buy_limit,s.stock from shop_product p
|
LEFT JOIN shop_sku s on p.id = s.p_id
|
where p.id = #{cartProductId}
|
and s.id = #{cartSkuId}
|
and p.del_flag = 2
|
</select>
|
|
|
<!-- 统计用户购物车数量 -->
|
<select id="selectUserCartCount" resultType="java.lang.Integer" >
|
select ifnull(sum(cart_number),0) from shop_shopping_cart c
|
LEFT JOIN shop_product p on p.id = c.cart_product_id
|
where c.shop_Id=#{shopId} and p.del_flag = 2 and cart_user_id=#{userId}
|
</select>
|
|
<!-- 根据id 锁表查询-->
|
<select id="selectForUpdate" resultMap="ShopShoppingCartMap">
|
select
|
<include refid="columns" ></include>
|
from shop_shopping_cart
|
where cart_id=#{cart_id}
|
for update
|
</select>
|
|
|
|
<!-- 根据对象查询-->
|
<select id="selectByModel" resultMap="ShopShoppingCartMap">
|
select
|
<include refid="columns" ></include>
|
from shop_shopping_cart
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
</mapper>
|