<?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.ShopActivitiesGroupInfoDao">
|
<!-- 定义ShopActivitiesGroupInfo 的复杂关联map -->
|
<resultMap type="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo" id="ShopActivitiesGroupInfoMap">
|
<id property="id" column="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="actId" column="act_id" />
|
<result property="goodsId" column="goods_id" />
|
<result property="giType" column="gi_type" />
|
<result property="giHeadDiscount" column="gi_head_discount" />
|
<result property="giLimitBuy" column="gi_limit_buy" />
|
<result property="giVirtualGroup" column="gi_virtual_group" />
|
<result property="companyId" column="company_id" />
|
</resultMap>
|
|
|
<!-- 定义ShopActivitiesGroupInfo 的简单map ,本map不添加其他的关联属性 -->
|
<resultMap type="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo" id="ShopActivitiesGroupInfoSimpleMap">
|
<id property="id" column="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="actId" column="act_id" />
|
<result property="goodsId" column="goods_id" />
|
<result property="giType" column="gi_type" />
|
<result property="giHeadDiscount" column="gi_head_discount" />
|
<result property="giLimitBuy" column="gi_limit_buy" />
|
<result property="companyId" column="company_id" />
|
</resultMap>
|
|
<!-- 字段sql -->
|
<sql id="columns">
|
create_by,
|
create_time,
|
update_by,
|
update_time,
|
id,
|
act_id,
|
goods_id,
|
gi_type,
|
gi_head_discount,
|
gi_limit_buy,
|
gi_virtual_group,
|
company_id
|
</sql>
|
|
<!-- 属性sql -->
|
<sql id="propertys">
|
#{item.createBy},
|
now(),
|
#{item.updateBy},
|
now(),
|
#{item.id},
|
#{item.actId},
|
#{item.goodsId},
|
#{item.giType},
|
#{item.giHeadDiscount},
|
#{item.giLimitBuy},
|
#{item.giVirtualGroup},
|
#{item.companyId}
|
</sql>
|
|
<!-- where sql -->
|
<sql id="where_sql">
|
|
<if test="record!=null">
|
<if test="(record.id!=null and record.id!='') or (record.id!='' and record.id==0) ">
|
and id = #{record.id}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') or (record.companyId!='' and record.companyId==0) ">
|
and company_id = #{record.companyId}
|
</if>
|
<if test="(record.actId!=null and record.actId!='') or (record.actId!='' and record.actId==0) ">
|
and act_id = #{record.actId}
|
</if>
|
<if test="(record.goodsId!=null and record.goodsId!='') or (record.goodsId!='' and record.goodsId==0) ">
|
and goods_id = #{record.goodsId}
|
</if>
|
<if test="(record.giType!=null and record.giType!='') or (record.giType!='' and record.giType==0) ">
|
and gi_type = #{record.giType}
|
</if>
|
<if test="(record.giHeadDiscount!=null and record.giHeadDiscount!='') or (record.giHeadDiscount!='' and record.giHeadDiscount==0) ">
|
and gi_head_discount = #{record.giHeadDiscount}
|
</if>
|
<if test="(record.giLimitBuy!=null and record.giLimitBuy!='') or (record.giLimitBuy!='' and record.giLimitBuy==0) ">
|
and gi_limit_buy = #{record.giLimitBuy}
|
</if>
|
</if>
|
|
</sql>
|
|
<!-- 插入方法 -->
|
<insert id="insert" parameterType="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo"
|
useGeneratedKeys="true" keyProperty="item.id">
|
INSERT INTO shop_activities_group_info (
|
<include refid="columns"></include>
|
)
|
VALUES (
|
<include refid="propertys"></include>
|
)
|
</insert>
|
|
|
|
<!-- 批量插入 -->
|
<insert id="batchInsert" parameterType="java.util.List">
|
INSERT INTO shop_activities_group_info (
|
<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_activities_group_info
|
<set>
|
<if test="_parameter.containsKey('actId')">
|
act_id = #{actId},
|
</if>
|
<if test="_parameter.containsKey('goodsId')">
|
goods_id = #{goodsId},
|
</if>
|
<if test="_parameter.containsKey('giType')">
|
gi_type = #{giType},
|
</if>
|
<if test="_parameter.containsKey('giHeadDiscount')">
|
gi_head_discount = #{giHeadDiscount},
|
</if>
|
<if test="_parameter.containsKey('giLimitBuy')">
|
gi_limit_buy = #{giLimitBuy},
|
</if>
|
</set>
|
WHERE id=#{id}
|
</update>
|
|
|
<!-- 根据对象更新 部分更新 -->
|
<update id="updateByModel" parameterType="Long">
|
UPDATE shop_activities_group_info
|
<set>
|
<if test="record.actId != null ">
|
act_id = #{record.actId},
|
</if>
|
<if test="record.goodsId != null ">
|
goods_id = #{record.goodsId},
|
</if>
|
<if test="record.giType != null ">
|
gi_type = #{record.giType},
|
</if>
|
<if test="record.giHeadDiscount != null ">
|
gi_head_discount = #{record.giHeadDiscount},
|
</if>
|
<if test="record.giLimitBuy != null ">
|
gi_limit_buy = #{record.giLimitBuy},
|
</if>
|
<if test="record.companyId != null ">
|
company_id = #{record.companyId},
|
</if>
|
</set>
|
WHERE id=#{record.id}
|
</update>
|
|
<!-- 批量删除 -->
|
<delete id="deleteByIds" parameterType="java.util.List">
|
delete from shop_activities_group_info where id in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</delete>
|
|
<!-- 根据id删除-->
|
<delete id="deleteById" parameterType="Long">
|
DELETE FROM shop_activities_group_info
|
where id=#{id}
|
</delete>
|
|
<!-- 根据对象删除-->
|
<delete id="deleteByModel" parameterType="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo">
|
DELETE FROM shop_activities_group_info
|
<where>
|
<include refid="where_sql" ></include>
|
</where>
|
</delete>
|
|
|
|
<!-- 分页查询 -->
|
<select id="selectInPage" resultMap="ShopActivitiesGroupInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_activities_group_info
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
|
<if test="pageVo.sort !=null and pageVo.order !=null">
|
order by
|
${pageVo.sort} ${pageVo.order}
|
</if>
|
<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_activities_group_info
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
|
<!-- 根据id查询-->
|
<select id="selectById" resultMap="ShopActivitiesGroupInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_activities_group_info
|
where id=#{id}
|
</select>
|
|
|
<!-- 根据id 锁表查询-->
|
<select id="selectForUpdate" resultMap="ShopActivitiesGroupInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_activities_group_info
|
where id=#{id}
|
for update
|
</select>
|
|
|
|
<!-- 根据对象查询-->
|
<select id="selectByModel" resultMap="ShopActivitiesGroupInfoMap">
|
select
|
<include refid="columns" ></include>
|
from shop_activities_group_info
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
|
<select id="selectGroupBuyList" resultType="com.matrix.system.shopXcx.api.vo.WxActivitiesGroupBuyVO">
|
select
|
t1.id id,
|
TIMESTAMPDIFF(SECOND, now(), t1.act_end_time) time,
|
t3.title goodsName,
|
t3.brief_introduction goodsIntro,
|
t3.price prePrice,
|
t4.gp_price nowPrice,
|
t1.act_status status,
|
t3.id goodsId,
|
t3.img_mobile goodsPic
|
from shop_activities t1
|
inner join shop_activities_group_info t2 on t1.id=t2.act_id
|
left join shop_product t3 on t2.goods_id=t3.id
|
left join shop_activities_group_price t4 on t1.id=t4.act_id and t4.seq=1
|
where find_in_set(#{record.shopId}, t1.shop_ids) and t1.act_status=1 and t1.act_type=1
|
and t1.company_id=#{record.companyId}
|
<if test="record !=null"><!-- 判断pageVo对象是否为空 -->
|
<if test="record.sort !=null and record.order !=null">
|
order by
|
t1.${record.sort} ${record.order}
|
</if>
|
<if test="record.offset >=0 and record.limit >0">
|
limit
|
#{record.offset},#{record.limit}
|
</if>
|
</if>
|
</select>
|
|
<select id="selectGroupBuyListCnt" resultType="java.lang.Integer">
|
select count(1)
|
from shop_activities t1
|
inner join shop_activities_group_info t2 on t1.id=t2.act_id
|
left join shop_product t3 on t2.goods_id=t3.id
|
left join shop_activities_group_price t4 on t1.id=t4.act_id and t4.seq=1
|
where find_in_set(#{record.shopId}, t1.shop_ids) and t1.act_status=1
|
and t1.company_id=#{record.companyId}
|
</select>
|
|
<select id="selectGroupInfoByActId" resultMap="ShopActivitiesGroupInfoMap">
|
select * from shop_activities_group_info where act_id=#{actId}
|
</select>
|
|
<resultMap type="com.matrix.system.shopXcx.api.vo.WxActivitiesGroupBuyVO" id="GroupBuyInfoMap">
|
<id property="id" column="giId" />
|
<result property="goodsId" column="goods_id" />
|
<result property="time" column="time"/>
|
<result property="prePrice" column="prePrice"/>
|
<result property="status" column="status"/>
|
<collection property="groupPriceList" ofType="com.matrix.system.shopXcx.bean.ShopActivitiesGroupPrice" column="act_id">
|
<id property="id" column="gpId"/>
|
<result property="actId" column="act_id"/>
|
<result property="gpCount" column="gp_count"/>
|
<result property="gpPrice" column="gp_price"/>
|
<result property="gpHeadPrice" column="gp_head_price"/>
|
</collection>
|
</resultMap>
|
|
<select id="selectGroupInfoWithPriceByActId" resultMap="GroupBuyInfoMap">
|
select
|
t1.id giId,
|
TIMESTAMPDIFF(SECOND, now(), t1.act_end_time) time,
|
t4.price prePrice,
|
t4.id goods_id,
|
t1.act_status status,
|
t2.id gpId,
|
t2.act_id,
|
t2.gp_count,
|
t2.gp_price,
|
t2.gp_head_price
|
from shop_activities t1
|
left join shop_activities_group_price t2 on t1.id=t2.act_id
|
left join shop_activities_group_info t3 on t1.id=t3.act_id
|
left join shop_product t4 on t3.goods_id=t4.id
|
where t1.id=#{actId}
|
</select>
|
|
<delete id="deleteByActId">
|
delete from shop_activities_group_info
|
where act_id=#{actId}
|
</delete>
|
</mapper>
|