EvalGroupMapper.xml 4.85 KB
<?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="cn.fw.morax.dao.eval.EvalGroupDao">

    <sql id="all_columns">
        id,eval_group_rank_id,eval_group_rank_stage_id,egc,post_id,post_name,shop_ids,
        shop_names,indicator_num,group_id,yn,create_time,update_time
    </sql>

    <sql id="left_join_columns">
        t3.id,t3.eval_group_rank_id,
        t3.eval_group_rank_stage_id,t3.egc,t3.post_ids,t3.post_names,
        t3.shop_ids,t3.shop_names,t3.indicator_num,t3.group_id
    </sql>

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="cn.fw.morax.domain.db.eval.EvalGroup">
            <result column="id" property="id"/>
                <result column="egc" property="egc"/>
                <result column="eval_group_rank_id" property="evalGroupRankId"/>
                <result column="eval_group_rank_stage_id" property="evalGroupRankStageId"/>
                <result column="post_ids" property="postIds" typeHandler="cn.fw.common.data.mybatis.handler.LongListTypeHandler"/>
                <result column="post_names" property="postNames" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/>
                <result column="shop_ids" property="shopIds" typeHandler="cn.fw.common.data.mybatis.handler.LongListTypeHandler"/>
                <result column="shop_names" property="shopNames" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/>
                <result column="indicator_num" property="indicatorNum"/>
                <result column="yn" property="yn"/>
                <result column="create_time" property="createTime"/>
                <result column="update_time" property="updateTime"/>
    </resultMap>

    <select id="getAllEffectGroups" resultMap="BaseResultMap">
        select
        <include refid="left_join_columns"/>
        FROM
        eval_group_rank t1
        LEFT JOIN eval_group_rank_stage t2 ON t1.id = t2.eval_group_rank_id AND t2.yn = 1
        LEFT JOIN eval_group t3 ON t2.id = t3.eval_group_rank_stage_id AND t3.yn = 1
        WHERE
        t1.yn = 1
        AND t1.`status` IN ( 3, 4 )
        and DATE_FORMAT(t2.begin_time, '%Y-%m-%d') &lt;= DATE_FORMAT(#{day}, '%Y-%m-%d')
        and DATE_FORMAT(t2.over_time, '%Y-%m-%d') >= DATE_FORMAT(#{day}, '%Y-%m-%d')
    </select>

    <select id="getEffectGroups" resultMap="BaseResultMap">
        select
        <include refid="all_columns"/>
        from eval_group
        where yn = 1
        and DATE_FORMAT(begin_time, '%Y-%m-%d') &lt;= DATE_FORMAT(#{day}, '%Y-%m-%d')
        and DATE_FORMAT(over_time, '%Y-%m-%d') >= DATE_FORMAT(#{day}, '%Y-%m-%d')
        and eval_id in (select id from eval where `status` in (3,4) and yn = 1)
    </select>

    <select id="queryCalculableEvalGroupIds" resultType="java.lang.Long">
        select
            t3.id
        FROM
            eval_group_rank t1
                LEFT JOIN eval_group_rank_stage t2 ON t1.id = t2.eval_group_rank_id AND t2.yn = 1
                LEFT JOIN eval_group t3 ON t2.id = t3.eval_group_rank_stage_id AND t3.yn = 1
        WHERE
            t1.yn = 1
        AND t1.`status` IN ( 3, 4 )
        and DATE_FORMAT(t2.begin_time, '%Y-%m-%d') &lt;= DATE_FORMAT(#{day}, '%Y-%m-%d')
        and DATE_FORMAT(t2.over_time, '%Y-%m-%d') >= DATE_FORMAT(#{day}, '%Y-%m-%d')
    </select>

    <select id="queryDistributionShopReward" resultType="java.lang.Long">
        select
            t3.id
        FROM
            eval_group_rank t1
                INNER JOIN eval_group_rank_stage t2 ON t1.id = t2.eval_group_rank_id AND t2.yn = 1
                INNER JOIN eval_group t3 ON t2.id = t3.eval_group_rank_stage_id AND t3.yn = 1
                INNER JOIN eval_group_reward_dim t4 ON t3.id = t4.eval_group_id AND t4.yn = 1
        WHERE
            t1.yn = 1
          AND t1.`status` IN ( 3, 4 )
          and DATE_FORMAT(t2.begin_time, '%Y-%m-%d') &lt;= DATE_FORMAT(#{day}, '%Y-%m-%d')
          and DATE_FORMAT(t2.over_time, '%Y-%m-%d') = DATE_FORMAT(#{day}, '%Y-%m-%d')
          AND t4.`type` = 2
    </select>

    <select id="getEffectsByRankId" resultMap="BaseResultMap">
        select
            t1.id,
            t1.eval_group_rank_id,
            t1.eval_group_rank_stage_id,
            t1.egc,
            t1.name,
            t1.post_id,
            t1.post_name,
            t1.shop_ids,
            t1.shop_names,
            t1.scope_type,
            t1.indicator_num,
            t1.group_id
        from eval_group t1
        left join eval_group_rank_stage t2 on t1.eval_group_rank_stage_id = t2.id and t2.yn = 1
        where t1.yn = 1
        and DATE_FORMAT(t2.begin_time, '%Y-%m-%d') &lt;= DATE_FORMAT(#{day}, '%Y-%m-%d')
        and DATE_FORMAT(t2.over_time, '%Y-%m-%d') >= DATE_FORMAT(#{day}, '%Y-%m-%d')
        and t1.eval_group_rank_id = #{evalGroupRankId}
    </select>

</mapper>