cloudroam
2024-09-03 49726442d0bad78c9211b7ea13d688c03b916ff6
src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
@@ -33,35 +33,105 @@
        <result column="usage_time_num" property="usageTimeNum" />
        <result column="status" property="status" />
        <result column="point" property="point" />
        <result column="vip_grade" property="vipGrade" />
        <result column="member_id" property="memberId" />
    </resultMap>
    <update id="activeBatchCouponTemplate">
        update t_coupon_template set status='active',update_by=#{dto.updateBy},update_time=now() where id in
        <foreach collection="dto.idList" item="item" open="(" separator="," close=")">
        update t_coupon_template set status='active',update_by=#{param.updateBy},update_time=now() where id in
        <foreach collection="param.idList" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <update id="expireBatchCouponTemplate">
        update t_coupon_template set status='expired',update_by=#{dto.updateBy},update_time=now() where id in
        <foreach collection="dto.idList" item="item" open="(" separator="," close=")">
        update t_coupon_template set status='expired',update_by=#{param.updateBy},update_time=now() where id in
        <foreach collection="param.idList" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <update id="deleteBatchCouponTemplate">
        update t_coupon_template set deleted=true ,update_by=#{dto.updateBy},update_time=now() where id in
        <foreach collection="dto.idList" item="item" open="(" separator="," close=")">
        update t_coupon_template set deleted=true ,update_by=#{param.updateBy},update_time=now() where id in
        <foreach collection="param.idList" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <select id="getCouponTemplatePage" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
        <include refid="QuerySql2"></include>
        <include refid="QuerySql2"/>
    </select>
    <select id="getList" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
        <include refid="QuerySql2"></include>
        <include refid="QuerySql2"/>
    </select>
    <select id="getCouponPointList" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
        <include refid="QueryPointSql" />
    </select>
    <select id="getPointPage" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
        <include refid="QueryPointSql" />
    </select>
<!--    app活动优惠券-->
    <select id="getActivityEffectList" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
        SELECT *
        FROM t_coupon_template t
        WHERE t.deleted = FALSE
        AND t.get_start_date &lt;= NOW()
        AND NOW() &lt;= t.get_end_date
        <if test="param.category != null and param.category != ''">
            AND category =  #{param.category}
        </if>
        <if test="param.status != null and param.status != ''">
            AND status =  #{param.status}
        </if>
        <if test="param.getType != null and param.getType != ''">
            AND t.get_type =  #{param.getType}
        </if>
        ORDER BY t.create_time DESC
    </select>
    <select id="getCouponCustomerList"
            resultType="com.mzl.flower.dto.response.coupon.CouponTemplateCustomerVO">
        select ci.id,ci.name,u.tel
        from t_coupon_template c
        left JOIN t_coupon_template_customer cc
        on c.id=cc.coupon_id
        left join t_customer_info ci
        on cc.custom_id=ci.id
        left join t_user u
        on ci.user_id=u.id
        where c.deleted= false
        and c.id=#{id}
    </select>
    <select id="getVipList" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
        <include refid="QuerySqlVip" />
    </select>
    <select id="getCouponTemplateVipPage" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
        <include refid="QuerySqlVip" />
    </select>
    <sql id="QueryPointSql">
        select *
        from t_coupon_template
        where deleted=0
        <if test="param.category != null and param.category != ''">
            AND category =  #{param.category}
        </if>
        <if test="param.status != null and param.status != ''">
            AND status =  #{param.status}
        </if>
        <if test="param.minPoint != null ">
            AND point &gt;=  #{param.minPoint}
        </if>
        <if test="param.maxPoint != null ">
            AND point &lt;=  #{param.maxPoint}
        </if>
        <if test="param.orderStr != null and param.orderStr != '' ">
            order by ${param.orderStr}
        </if>
    </sql>
    <sql id="QuerySql2">
        select *
@@ -70,11 +140,11 @@
            create_by_user.nick_name as createByName,
            IFNULL(get_num.cnt, 0) as getNum,
            IFNULL(t.coupon_amount, 0) - IFNULL(get_num.cnt, 0) as unGetNum
            from t_coupon_template t
            left join t_user create_by_user
            on t.create_by =create_by_user.id
            left join (select coupon_template_id,count(1) as cnt  from t_coupon_usage where deleted=0 group by coupon_template_id) get_num
            on t.id=get_num.coupon_template_id
        from t_coupon_template t
        left join t_user create_by_user
        on t.create_by =create_by_user.id
        left join (select coupon_id,count(1) as cnt  from t_coupon_record where deleted=0 group by coupon_id) get_num
        on t.id=get_num.coupon_id
        ) t
        where t.deleted=0
        <if test="param.name != null and param.name != ''">
@@ -95,6 +165,50 @@
        <if test="param.category != null and param.category != ''">
            AND t.category =  #{param.category}
        </if>
        <if test="param.status != null and param.status != ''">
            AND t.status =  #{param.status}
        </if>
        order by t.create_time desc
    </sql>
    <sql id="QuerySqlVip">
        select *
        from (
            select t.*,
            create_by_user.nick_name as createByName,
            IFNULL(get_num.cnt, 0) as getNum,
            IFNULL(t.coupon_amount, 0) - IFNULL(get_num.cnt, 0) as unGetNum,
            m.`name` as member_name
            from t_coupon_template t
            left join t_user create_by_user
            on t.create_by =create_by_user.id
            left join (select coupon_id,count(1) as cnt  from t_coupon_record where deleted=0 group by coupon_id) get_num
            on t.id=get_num.coupon_id
            left join t_member m
            on t.member_id=m.id
        ) t
        where t.deleted=0
        <if test="param.name != null and param.name != ''">
            AND t.coupon_name like concat('%', #{param.name},'%')
        </if>
        <if test="param.couponDiscountType != null and param.couponDiscountType != ''">
            AND t.coupon_discount_type =  #{param.couponDiscountType}
        </if>
        <if test="param.getType != null and param.getType != ''">
            AND t.get_type =  #{param.getType}
        </if>
        <if test="param.getUserType != null and param.getUserType != ''">
            AND t.get_user_type =  #{param.getUserType}
        </if>
        <if test="param.id != null and param.id != ''">
            AND t.id =  #{param.id}
        </if>
        <if test="param.category != null and param.category != ''">
            AND t.category =  #{param.category}
        </if>
        <if test="param.status != null and param.status != ''">
            AND t.status =  #{param.status}
        </if>
        order by t.create_time desc
    </sql>