<?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.example.his.api.db.dao.RuleDao">

    <resultMap id="BaseResultMap" type="com.example.his.api.db.pojo.RuleEntity">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="name" column="name" jdbcType="VARCHAR"/>
            <result property="rule" column="rule" jdbcType="VARCHAR"/>
            <result property="remark" column="remark" jdbcType="VARCHAR"/>
    </resultMap>

<!--    <sql id="Base_Column_List">-->
<!--        id,name,rule,-->
<!--        remark-->
<!--    </sql>-->

    <!-- 体检规则-查询全部 -->
    <select id="searchRule" resultType="HashMap">
        select id,name from tb_rule
    </select>

    <!-- 促销规则-分页查询 -->
    <select id="searchRuleByPage" parameterType="Map" resultType="HashMap">
        SELECT r.id,
        r.name,
        IFNULL(tmp.count, 0) AS count,
        r.rule,
        r.remark
        FROM tb_rule r
        LEFT JOIN ( SELECT rule_id, COUNT(*) AS count FROM tb_goods GROUP BY rule_id ) tmp ON r.id = tmp.rule_id
        <where>
            <if test="name!=null">
                AND r.name LIKE CONCAT('%',#{name},'%')
            </if>
        </where>
    </select>

    <!-- 促销规则-新增 -->
    <insert id="insertRule">
        insert into tb_rule set name = #{name},rule = #{rule},remark = #{remark}
    </insert>

    <!-- 促销规则-更新 -->
    <update id="updateRule">
        update tb_rule set name = #{name},rule = #{rule},remark = #{remark} where id = #{id}
    </update>

    <!-- 促销规则-删除 -->
    <delete id="deleteRule">
        delete r
        from tb_rule r
                 left join (select rule_id, count(*) as count from tb_goods group by rule_id) tmp on r.id = tmp.rule_id
        where r.id = #{id}
          and ifnull(tmp.count, 0) = 0
    </delete>
</mapper>
