update ${rangeTableName}
        set new_box_num = 0,
            consume_box_num = 0,
            month_box_num = 0,
            new_consume_pv = 0,
            consume_pv = 0,
            month_consume_pv = 0,
            team_new_box_num = 0,
            team_box_num = 0,
            team_month_box_num = 0,
            team_new_pv = 0,
            team_consume_pv = 0,
            team_month_pv = 0,
            team_new_amount = 0,
            team_consume_amount = 0,
            team_month_amount = 0,
            recommend_num = 0,
            team_num = 0,
            enable_status = 1,
            pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20),
            pk_share_awards = (select pk_id from BD_AWARDS where awards_value = 0),
            region_address = 0,
            big_box_num = 0,
            small_box_num = 0,
            big_team_pv = 0,
            small_team_pv = 0
    
    
        merge into ${rangeTableName} a
        using(
        select pk_member, pk_grade, pk_share_awards, enable_status,
        new_box_num, consume_box_num, month_box_num,
        new_consume_pv, consume_pv, month_consume_pv,
        team_new_box_num, team_box_num, team_month_box_num,
        team_new_pv, team_consume_pv, team_month_pv,
        team_new_amount, team_consume_amount, team_month_amount,
        recommend_num, team_num,
        big_box_num, small_box_num, big_team_pv, small_team_pv
        from ${yesterdayRangeTableName}
        ) b
        on (a.pk_member = b.pk_member)
        when matched then
        update set
        a.consume_box_num = b.consume_box_num,
        a.consume_pv = b.consume_pv,
        a.team_box_num = b.team_box_num,
        a.team_consume_pv = b.team_consume_pv,
        a.team_consume_amount = b.team_consume_amount,
        a.recommend_num = b.recommend_num, a.team_num = b.team_num,
        a.pk_grade = b.pk_grade,
        a.enable_status = b.enable_status,
        a.big_box_num = b.big_box_num, a.small_box_num = b.small_box_num,
        a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv
        
            ,a.month_box_num = b.month_box_num
            ,a.month_consume_pv = b.month_consume_pv
            ,a.team_month_box_num = b.team_month_box_num
            ,a.team_month_pv = b.team_month_pv
            ,a.team_month_amount = b.team_month_amount
            ,a.pk_share_awards = b.pk_share_awards
        
    
    
        merge into ${rangeTableName} a
        using (
        
            select #{item.pkMember} pk_member, #{item.pkAwards} pk_awards, #{item.pkGrade} pk_grade, #{item.pkShareAwards} pk_share_awards,
            #{item.newBoxNum} new_box_num, #{item.consumeBoxNum} consume_box_num, #{item.monthBoxNum} month_box_num,
            #{item.newConsumePv} new_consume_pv, #{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
            #{item.teamNewBoxNum} team_new_box_num, #{item.teamBoxNum} team_box_num, #{item.teamMonthBoxNum} team_month_box_num,
            #{item.teamNewPv} team_new_pv, #{item.teamConsumePv} team_consume_pv, #{item.teamMonthPv} team_month_pv,
            #{item.teamNewAmount} team_new_amount, #{item.teamConsumeAmount} team_consume_amount, #{item.teamMonthAmount} team_month_amount,
            #{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status
            from dual
        
        ) b
        on (a.pk_member = b.pk_member)
        when matched then
        update set a.pk_awards = b.pk_awards, a.pk_grade = b.pk_grade, a.pk_share_awards = b.pk_share_awards,
        a.new_box_num = b.new_box_num, a.consume_box_num = b.consume_box_num, a.month_box_num = b.month_box_num,
        a.new_consume_pv = b.new_consume_pv, a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv,
        a.team_new_box_num = b.team_new_box_num, a.team_box_num = b.team_box_num, a.team_month_box_num = b.team_month_box_num,
        a.team_new_pv = b.team_new_pv, a.team_consume_pv = b.team_consume_pv, a.team_month_pv = b.team_month_pv,
        a.team_new_amount = b.team_new_amount, a.team_consume_amount = b.team_consume_amount, a.team_month_amount = b.team_month_amount,
        a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
    
    
    
        merge into ${secondRangeTableName} a
            using (
                select a.pk_id           pk_member,
                       a.pk_parent,
                       a.pk_settle_grade pk_grade,
                       a.pk_awards,
                       a.is_activate     enable_status,
                       a.system_type
                from (select *
                      from cu_member
                      where del_flag = 0
                          start
                      with pk_id = #{pkMember}
                      connect by pk_id = prior pk_parent
                     ) a
            ) b
            on (a.pk_member = b.pk_member)
            when not matched then
                insert (pk_member, pk_parent, pk_grade, pk_awards, enable_status, system_type)
                    values (b.pk_member, b.pk_parent, b.pk_grade, b.pk_awards, b.enable_status, b.system_type)
    
    
    
        merge into ${secondRangeTableName} a
            using (
                select a.pk_id                 pk_member,
                       a.pk_parent,
                       a.pk_settle_grade       pk_grade,
                       a.pk_awards,
                       nvl(b.enable_status, 1) enable_status
                from (select *
                      from cu_member
                      where del_flag = 0
                          start
                      with pk_id = #{pkMember}
                      connect by pk_id = prior pk_parent
                     ) a
                         left join ${rangeTableName} b
                                   on a.pk_id = b.pk_member
                where b.enable_status = 0
            ) b
            on (a.pk_member = b.pk_member)
            when matched then
                update set a.enable_status = b.enable_status, a.pk_grade = b.pk_grade
    
    
    
        merge into ${secondTableName} a
        using (
        
            select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards,
            #{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
            #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
            #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
            from dual
        
        ) b
        on (a.pk_member = b.pk_member)
        when matched then
        update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards,
        a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
        a.team_new_box_num = b.team_new_box_num, a.team_new_pv = b.team_new_pv,
        a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status
    
    
        merge into ${rangeTableName} a
            using (
                select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards
                from cu_member start with pk_id = #{pkMember}
                connect by prior pk_parent = pk_id
            ) b
            on (a.pk_member = b.pk_member)
            when matched then
                update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards
    
    
        merge into ${rangeTableName} a
            using (
                select cm.pk_member, cr.county region_address
                from ${rangeTableName} cm
                         inner join cu_member_retail_region cr
                                    on cr.pk_member = cm.pk_member
                                        and cr.effective = 0
                                        and cr.del_flag = 0
                where cr.creation_time < #{settleDate, jdbcType=DATE}
            ) b
            on (a.pk_member = b.pk_member)
            when matched then
                update set a.region_address = b.region_address
    
    
        merge into ${rangeTableName} a
            using (
                select a.*
                from cu_member_spe_retail a
                         inner join(
                    select member_code, max(nvl(modified_time, creation_time)) creation_time
                    from cu_member_spe_retail
                    where del_flag = 0
                      and period = #{period}
                    group by member_code
                ) b on a.member_code = b.member_code and nvl(a.modified_time, a.creation_time) = b.creation_time
            ) b
            on (a.member_code = b.member_code)
            when matched then
                update set
                    a.big_box_num = b.team_box_num - b.small_box_num,
                    a.small_box_num = b.small_box_num
    
    
        merge into ${rangeTableName} a
            using (
                select *
                from ${beforeTableName} a
                         inner join (
                    select cr.*
                    from cu_member_spe_retail cr
                             inner join (
                        select member_code, max(pk_id) pk_id
                        from cu_member_spe_retail
                        where period < #{period}
                          and del_flag = 0
                        group by member_code
                    ) b on cr.member_code = b.member_code
                    where cr.period = #{period}
                      and cr.del_flag = 0
                ) b on a.member_code = b.member_code
            ) b
            on (a.pk_member = b.pk_member)
            when matched then
                update set
                    a.big_box_num = 0,
                    a.small_box_num = 0,
                    a.team_box_num = a.team_box_num