From 2c7178172dcdb6019b45c9037864bebbac903dd3 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 11 Jun 2025 11:05:25 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E8=B0=83=E6=95=B4=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=A5=96=E9=87=91=E7=B4=A2=E5=BC=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/achieve/CuMemberTreeMapper.xml | 831 ++++++++++++++++++ 1 file changed, 831 insertions(+) create mode 100644 bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml new file mode 100644 index 00000000..36742b84 --- /dev/null +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml @@ -0,0 +1,831 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + period + NUMBER(6) default 0 not null, + pk_member NUMBER(20) not null, + pk_parent NUMBER(20) not null, + pk_place_parent NUMBER(20), + place_dept NUMBER(3), + member_code VARCHAR2(30) not null, + member_name VARCHAR2(100) not null, + customer_type NUMBER(2) not null, + phone VARCHAR2(40) not null, + pk_grade NUMBER(4) not null, + pk_awards NUMBER(4) not null, + account_status number(1) default 0 not null, + pay_status NUMBER(2) default 0 not null, + register_authority number(2) default 0 not null, + category number(2) default 0 not null, + purchase_type number(2) default 0 not null, + purchase_status number(2) default 0 not null, + share_status number(2) default 0 not null, + income_status number(2) default 0 not null, + pk_team_code number(20), + pk_center_code number(20), + pk_vertex number(20), + pk_settle_country number(4) not null, + is_real_name NUMBER(1) default 1 not null, + is_bus_license NUMBER(1) default 1 not null, + is_maker_space NUMBER(1) default 1 not null, + pk_country number(4) default 1 not null, + store_level NUMBER(2) default 0, + is_maker_gift NUMBER(1) default 1, + expire_status number(1) default 1 + + + + + , + , + + + + + pk_rate + NUMBER(6) , + a_balance NUMBER(17,6) default 0 not null, + b_balance NUMBER(17,6) default 0 not null, + a_sum_amount NUMBER(17,6) default 0 not null, + b_sum_amount NUMBER(17,6) default 0 not null, + a_sum_pv NUMBER(17,6) default 0 not null, + b_sum_pv NUMBER(17,6) default 0 not null, + a_new_amount NUMBER(17,6) default 0 not null, + b_new_amount NUMBER(17,6) default 0 not null, + a_new_pv NUMBER(17,6) default 0 not null, + b_new_pv NUMBER(17,6) default 0 not null, + a_sum_real_amount NUMBER(17,6) default 0 not null, + b_sum_real_amount NUMBER(17,6) default 0 not null, + a_sum_real_pv NUMBER(17,6) default 0 not null, + b_sum_real_pv NUMBER(17,6) default 0 not null, + rep_a_balance NUMBER(17,6) default 0 not null, + rep_b_balance NUMBER(17,6) default 0 not null, + rep_a_new_amount NUMBER(17,6) default 0 not null, + rep_b_new_amount NUMBER(17,6) default 0 not null, + rep_a_new_pv NUMBER(17,6) default 0 not null, + rep_b_new_pv NUMBER(17,6) default 0 not null, + rep_a_sum_amount NUMBER(17,6) default 0 not null, + rep_b_sum_amount NUMBER(17,6) default 0 not null, + rep_a_sum_pv NUMBER(17,6) default 0 not null, + rep_b_sum_pv NUMBER(17,6) default 0 not null, + register_amount NUMBER(17,6) default 0 not null, + register_pv NUMBER(17,6) default 0 not null, + register_new_amount NUMBER(17,6) default 0 not null, + register_new_pv NUMBER(17,6) default 0 not null, + upgrade_amount NUMBER(17,6) default 0 not null, + upgrade_pv NUMBER(17,6) default 0 not null, + upgrade_new_amount NUMBER(17,6) default 0 not null, + upgrade_new_pv NUMBER(17,6) default 0 not null, + repurchase_amount NUMBER(17,6) default 0 not null, + repurchase_pv NUMBER(17,6) default 0 not null, + repurchase_new_amount NUMBER(17,6) default 0 not null, + repurchase_new_pv NUMBER(17,6) default 0 not null, + hi_fun_amount NUMBER(17,6) default 0 not null, + hi_fun_pv NUMBER(17,6) default 0 not null, + hi_fun_new_amount NUMBER(17,6) default 0 not null, + hi_fun_new_pv NUMBER(17,6) default 0 not null, + mall_amount NUMBER(17,6) default 0 not null, + mall_pv NUMBER(17,6) default 0 not null, + mall_new_amount NUMBER(17,6) default 0 not null, + mall_new_pv NUMBER(17,6) default 0 not null, + REGISTER_Blo_NEW_PV NUMBER(17,6) default 0 not null, + UPGRADE_Blo_NEW_PV NUMBER(17,6) default 0 not null, + REPURCHASE_Blo_NEW_PV NUMBER(17,6) default 0 not null, + HI_FUN_Blo_NEW_PV NUMBER(17,6) default 0 not null, + MALL_Blo_NEW_PV NUMBER(17,6) default 0 not null, + min_achieve number(17,6) default 0 not null, + round NUMBER(6) default 0 not null, + second NUMBER(4) default 1 not null + + + + select pk_member,pk_parent,member_code,member_name,a.pk_awards,account_status,a.register_authority,customer_type, + income_status,pk_settle_country,purchase_status,share_status,is_maker_space, + a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, + register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, + repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade, + min_achieve,round,second,bg.grade_value,store_level,expire_status from ( + + ) a + inner join bd_grade bg + on a.pk_grade = bg.pk_id + + + + net_first_achieve + NUMBER(17,6) default 0 not null, + net_repurchase_achieve NUMBER(17,6) default 0 not null, + r_a_balance NUMBER(17,6) default 0 not null, + r_b_balance NUMBER(17,6) default 0 not null, + r_a_sum_amount NUMBER(17,6) default 0 not null, + r_b_sum_amount NUMBER(17,6) default 0 not null, + r_a_sum_pv NUMBER(17,6) default 0 not null, + r_b_sum_pv NUMBER(17,6) default 0 not null, + r_a_sum_real_amount NUMBER(17,6) default 0 not null, + r_b_sum_real_amount NUMBER(17,6) default 0 not null, + r_a_sum_real_pv NUMBER(17,6) default 0 not null, + r_b_sum_real_pv NUMBER(17,6) default 0 not null, + r_rep_a_balance NUMBER(17,6) default 0 not null, + r_rep_b_balance NUMBER(17,6) default 0 not null, + r_rep_a_sum_amount NUMBER(17,6) default 0 not null, + r_rep_b_sum_amount NUMBER(17,6) default 0 not null, + r_rep_a_sum_pv NUMBER(17,6) default 0 not null, + r_rep_b_sum_pv NUMBER(17,6) default 0 not null + + + + CREATE + OR REPLACE TRIGGER + ${tableName} + _ + TRIG + BEFORE + INSERT + OR + UPDATE ON ${tableName} + FOR EACH ROW + DECLARE + v_newVal NUMBER(12) := 0; + v_incval + NUMBER(12) := 0; + BEGIN + IF + INSERTING AND :new.pk_id IS NULL THEN + SELECT ${tableNameSeq}.NEXTVAL + INTO v_newVal + FROM DUAL; + IF + v_newVal = 1 THEN + SELECT NVL(max(pk_id), 0) + INTO v_newVal + FROM ${tableName}; + v_newVal + := v_newVal + 1; + LOOP + EXIT + WHEN v_incval >= v_newVal; + SELECT ${tableNameSeq}.nextval + INTO v_incval + FROM dual; + END LOOP; + END IF; + :new + .pk_id := v_newVal; + END IF; + END; + + + + + select pk_member,pk_parent,member_code,member_name,pk_awards,account_status, + register_authority,customer_type,income_status,pk_settle_country,purchase_status,share_status,is_maker_space, + a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, + register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, + repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade, + min_achieve,round,second,store_level,expire_status + from ${settleTableName} + where pay_status = 1 + start with pk_member = #{item} + connect by pk_member = prior pk_parent + + + + + create table ${tableName} + ( + pk_id NUMBER(20) primary key, + + ) + + + + create table ${tableName} + ( + + ) + + + + create index + ${tableName}_parent + on + ${tableName} + ( + pk_parent + ) + + + + create index + ${tableName}_place + on + ${tableName} + ( + pk_place_parent, + place_dept + ) + + + + create unique index + ${tableName}_PK_M + on ${tableName} + ( + PK_MEMBER, + period + ) + + + + create unique index + ${tableName}_PK_M + on ${tableName} + ( + PK_MEMBER + ) + + + + merge into ${updateTableName} a + using ( + select pk_member, max(new_level) pk_awards + from cu_member_awards + where period = #{period} + and del_flag = 0 + group by pk_member) b + on (a.pk_member = b.pk_member) + when matched then + update set + a.pk_awards = b.pk_awards + + + + insert into ${settleTableName} (pk_member, pk_parent, member_code, member_name, + customer_type, phone, pk_grade, pk_awards, account_status, pay_status, category, + purchase_status, income_status, pk_team_code, + pk_center_code, pk_vertex, pk_settle_country, is_real_name, + pk_country, pk_rate, pay_time, region_address, system_type, enable_status) + select cm.pk_id, + pk_parent, + member_code, + member_name, + customer_type, + phone, + pk_settle_grade, + cm.pk_awards, + account_status, + pay_status, + category, + purchase_status, + income_status, + pk_team_code, + pk_center_code, + pk_vertex, + pk_settle_country, + is_real_name, + cm.pk_country, + nvl(bc.pk_id, -1) pk_rate, + cm.pay_time, + nvl(cr.county, 0) country, + cm.system_type, + cm.is_activate + from cu_member cm + left join ( + select pk_country, max(pk_id) pk_id + from bd_currency + where del_flag = 0 + and pk_country = 1 + and enable_state = 0 + and effective_date <= sysdate + group by pk_country) bc + on cm.pk_settle_country = bc.pk_country + left join cu_member_retail_region cr + on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0 + where cm.del_flag = 0 + + + + + + + + merge into ${settleTableName} a + using (select pk_member, max(old_level) old_level + from cu_member_awards + where period = #{period} + group by pk_member) b + on (a.pk_member = b.pk_member) + when matched then + update set + a.pk_awards = b.old_level + + + + merge into ${rangeTableName} a + using ( + select pk_member, old_level, ba.pk_awards + from ( + select pk_member, max(old_level) old_level + from cu_member_awards + where period = #{period} + and up_type = 1 + and system_type = 1 + group by pk_member) ca + inner join bd_range_awards ba + on ca.old_level = ba.pk_id + where ba.del_flag = 0 + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + a.pk_awards = b.pk_awards,a.pk_range_awards = b.old_level + + + + merge into ${rangeTableName} a + using ( + select ca.pk_member, max(old_level) pk_awards from cu_member_awards ca + inner join ${rangeTableName} cm + on ca.pk_member = cm.pk_member + where ca.period = #{period} and ca.up_type = 1 + and ca.award_type = #{awardType} + + and cm.pk_awards <= ca.new_level + + + and cm.pk_share_awards <= ca.new_level + + group by ca.pk_member + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + + a.pk_awards = b.pk_awards + + + a.pk_share_awards=b.pk_awards + + + + + merge into ${rangeTableName} a + using ( + select y.pk_member,y.pk_awards from ${rangeTableName} x + inner join ( + select a.pk_member,a.new_level pk_awards from cu_member_awards a + inner join( + select pk_member, max(pk_id) pk_id from cu_member_awards where del_flag = 0 and up_type=2 + and end_validity_date <= #{settleDate, jdbcType=DATE} + and award_type = #{awardType} + group by pk_member) b + on a.pk_id = b.pk_id ) y + on x.pk_member=y.pk_member + where + + x.pk_awards < y.pk_awards + + + x.pk_share_awards < y.pk_awards + + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + + a.pk_awards = b.pk_awards + + + a.pk_share_awards=b.pk_awards + + + + + + update ${rangeTableName} + set pk_awards = (select pk_id from bd_awards where awards_value = 0), + pk_share_awards = (select pk_id from bd_awards where awards_value = 0) + + + + + update ${rangeTableName} + set pk_awards = (select pk_id from bd_awards where awards_value = 5), + pk_share_awards = (select pk_id from bd_awards where awards_value = 5) + where pk_grade = ( + select pk_id + from bd_grade + where grade_value = 70 + and del_flag = 0 + ) + + + + merge into ${settleTableName} a + using( + select * from ( + + select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance, + #{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual + ) + ) b + on (a.pk_member = b.pk_member) + when matched then + update set a.a_balance = b.a_balance, a.b_balance=b.b_balance, + a.min_achieve=b.min_achieve,a.round = b.round,a.second=b.second + + + + create table ${tableName} + ( + pk_member NUMBER(20) not null, + pk_parent NUMBER(20) not null, + pk_grade NUMBER(4) not null, + pk_awards number(4) default 1 not null, + enable_status number(2) default 1 not null, + system_type NUMBER(2) default 2 not null, + new_box_num number(8) default 0 not null, + team_new_box_num number(8) default 0 not null, + new_consume_pv number(17,6) default 0 not null, + team_new_amount number(17,6) default 0 not null, + team_new_pv number(17,6) default 0 not null + ) + + + + create table ${tableName} + ( + pk_member NUMBER(20) not null, + pk_parent NUMBER(20) not null, + member_code VARCHAR2(30) not null, + member_name VARCHAR2(100) not null, + customer_type NUMBER(2) not null, + phone VARCHAR2(40) not null, + pk_grade NUMBER(4) not null, + pk_awards number(4) default 1 not null, + pk_share_awards number(4) default 12 not null, + enable_status number(2) default 1 not null, + account_status number(1) default 0 not null, + pay_status NUMBER(2) default 0 not null, + pay_time DATE, + category number(2) default 0 not null, + purchase_status number(2) default 0 not null, + income_status number(2) default 0 not null, + pk_team_code number(20), + pk_center_code number(20), + pk_vertex number(20), + pk_settle_country number(4) not null, + is_real_name NUMBER(1) default 1 not null, + pk_country number(4) default 1 not null, + system_type NUMBER(2) default 2 not null, + pk_rate NUMBER(6), + consume_box_num number(8) default 0 not null, + new_box_num number(8) default 0 not null, + team_box_num number(8) default 0 not null, + month_box_num number(8) default 0 not null, + team_new_box_num number(8) default 0 not null, + consume_pv number(17,6) default 0 not null, + month_consume_pv number(17,6) default 0 not null, + new_consume_pv number(17,6) default 0 not null, + team_consume_amount number(17,6) default 0 not null, + team_consume_pv number(17,6) default 0 not null, + team_month_amount number(17,6) default 0 not null, + team_month_pv number(17,6) default 0 not null, + team_new_amount number(17,6) default 0 not null, + team_new_pv number(17,6) default 0 not null, + recommend_num number(8) default 0 not null, + team_num number(8) default 0 not null, + region_address number(8) default 0 not null, + big_box_num number(8) default 0 not null, + small_box_num number(8) default 0 not null, + big_team_pv number(17,6) default 0 not null, + small_team_pv number(17,6) default 0 not null + ) + + + + truncate table ${tableName} + + + + + + + + + + + + + + + + + + + + + + + + +