| <?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> |