821 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			XML
		
	
	
	
			
		
		
	
	
			821 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			XML
		
	
	
	
| <?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.hzs.bonus.achieve.mapper.CuMemberTreeMapper">
 | |
| 
 | |
|     <!-- 通用查询映射结果 -->
 | |
|     <resultMap id="CuMemberSettleExt" type="com.hzs.common.domain.member.ext.CuMemberSettleExt">
 | |
|         <id column="PK_ID" property="pkId"/>
 | |
|         <result column="PERIOD" property="period"/>
 | |
|         <result column="PK_MEMBER" property="pkMember"/>
 | |
|         <result column="PK_PARENT" property="pkParent"/>
 | |
|         <result column="PK_PLACE_PARENT" property="pkPlaceParent"/>
 | |
|         <result column="PLACE_DEPT" property="placeDept"/>
 | |
|         <result column="MEMBER_CODE" property="memberCode"/>
 | |
|         <result column="MEMBER_NAME" property="memberName"/>
 | |
|         <result column="CUSTOMER_TYPE" property="customerType"/>
 | |
|         <result column="PHONE" property="phone"/>
 | |
|         <result column="PK_GRADE" property="pkGrade"/>
 | |
|         <result column="PK_ORI_AWARDS" property="pkOriAwards"/>
 | |
|         <result column="PK_AWARDS" property="pkAwards"/>
 | |
|         <result column="ACCOUNT_STATUS" property="accountStatus"/>
 | |
|         <result column="PAY_STATUS" property="payStatus"/>
 | |
|         <result column="REGISTER_AUTHORITY" property="registerAuthority"/>
 | |
|         <result column="CATEGORY" property="category"/>
 | |
|         <result column="PURCHASE_TYPE" property="purchaseType"/>
 | |
|         <result column="PURCHASE_STATUS" property="purchaseStatus"/>
 | |
|         <result column="SHARE_STATUS" property="shareStatus"/>
 | |
|         <result column="INCOME_STATUS" property="incomeStatus"/>
 | |
|         <result column="PK_TEAM_CODE" property="pkTeamCode"/>
 | |
|         <result column="PK_CENTER_CODE" property="pkCenterCode"/>
 | |
|         <result column="PK_VERTEX" property="pkVertex"/>
 | |
|         <result column="PK_SETTLE_COUNTRY" property="pkSettleCountry"/>
 | |
|         <result column="IS_REAL_NAME" property="isRealName"/>
 | |
|         <result column="IS_BUS_LICENSE" property="isBusLicense"/>
 | |
|         <result column="IS_MAKER_SPACE" property="isMakerSpace"/>
 | |
|         <result column="PK_COUNTRY" property="pkCountry"/>
 | |
|         <result column="PK_RATE" property="pkRate"/>
 | |
|         <result column="A_BALANCE" property="aBalance"/>
 | |
|         <result column="B_BALANCE" property="bBalance"/>
 | |
|         <result column="R_A_BALANCE" property="rABalance"/>
 | |
|         <result column="R_B_BALANCE" property="rBBalance"/>
 | |
|         <result column="A_SUM_AMOUNT" property="aSumAmount"/>
 | |
|         <result column="B_SUM_AMOUNT" property="bSumAmount"/>
 | |
|         <result column="A_SUM_PV" property="aSumPv"/>
 | |
|         <result column="B_SUM_PV" property="bSumPv"/>
 | |
|         <result column="A_NEW_AMOUNT" property="aNewAmount"/>
 | |
|         <result column="B_NEW_AMOUNT" property="bNewAmount"/>
 | |
|         <result column="A_NEW_PV" property="aNewPv"/>
 | |
|         <result column="B_NEW_PV" property="bNewPv"/>
 | |
|         <result column="A_SUM_REAL_AMOUNT" property="aSumRealAmount"/>
 | |
|         <result column="B_SUM_REAL_AMOUNT" property="bSumRealAmount"/>
 | |
|         <result column="A_SUM_REAL_PV" property="aSumRealPv"/>
 | |
|         <result column="B_SUM_REAL_PV" property="bSumRealPv"/>
 | |
|         <result column="REP_A_BALANCE" property="repABalance"/>
 | |
|         <result column="REP_B_BALANCE" property="repBBalance"/>
 | |
|         <result column="R_REP_A_BALANCE" property="rRepABalance"/>
 | |
|         <result column="R_REP_B_BALANCE" property="rRepBBalance"/>
 | |
|         <result column="REP_A_NEW_AMOUNT" property="repANewAmount"/>
 | |
|         <result column="REP_B_NEW_AMOUNT" property="repBNewAmount"/>
 | |
|         <result column="REP_A_NEW_PV" property="repANewPv"/>
 | |
|         <result column="REP_B_NEW_PV" property="repBNewPv"/>
 | |
|         <result column="REP_A_SUM_AMOUNT" property="repASumAmount"/>
 | |
|         <result column="REP_B_SUM_AMOUNT" property="repBSumAmount"/>
 | |
|         <result column="REP_A_SUM_PV" property="repASumPv"/>
 | |
|         <result column="REP_B_SUM_PV" property="repBSumPv"/>
 | |
|         <result column="REGISTER_AMOUNT" property="registerAmount"/>
 | |
|         <result column="REGISTER_PV" property="registerPv"/>
 | |
|         <result column="REGISTER_NEW_PV" property="registerNewPv"/>
 | |
|         <result column="UPGRADE_AMOUNT" property="upgradeAmount"/>
 | |
|         <result column="UPGRADE_PV" property="upgradePv"/>
 | |
|         <result column="UPGRADE_NEW_PV" property="upgradeNewPv"/>
 | |
|         <result column="REPURCHASE_AMOUNT" property="repurchaseAmount"/>
 | |
|         <result column="REPURCHASE_PV" property="repurchasePv"/>
 | |
|         <result column="REPURCHASE_NEW_PV" property="repurchaseNewPv"/>
 | |
|         <result column="HI_FUN_AMOUNT" property="hiFunAmount"/>
 | |
|         <result column="HI_FUN_PV" property="hiFunPv"/>
 | |
|         <result column="HI_FUN_NEW_PV" property="hiFunNewPv"/>
 | |
|         <result column="MALL_AMOUNT" property="mallAmount"/>
 | |
|         <result column="MALL_PV" property="mallPv"/>
 | |
|         <result column="MALL_NEW_PV" property="mallNewPv"/>
 | |
|         <result column="MIN_ACHIEVE" property="minAchieve"/>
 | |
|         <result column="REGISTER_Blo_NEW_PV" property="registerBloNewPv"/>
 | |
|         <result column="UPGRADE_Blo_NEW_PV" property="upgradeBloNewPv"/>
 | |
|         <result column="REPURCHASE_Blo_NEW_PV" property="repurchaseBloNewPv"/>
 | |
|         <result column="HI_FUN_Blo_NEW_PV" property="hiFunBloNewPv"/>
 | |
|         <result column="MALL_Blo_NEW_PV" property="mallBloNewPv"/>
 | |
|         <result column="ROUND" property="round"/>
 | |
|         <result column="SECOND" property="second"/>
 | |
|         <result column="ASSESS_TYPE" property="assessType"/>
 | |
|         <result column="PK_ORDER" property="pkOrder"/>
 | |
|         <result column="LEVEL" property="level"/>
 | |
|         <result column="GRADE_VALUE" property="gradeValue"/>
 | |
|         <result column="parentMemberCode" property="parentMemberCode"/>
 | |
|         <result column="AP_PK_ID" property="apPkId"/>
 | |
|         <result column="USABLE_QUANTITY" property="usableQuantity"/>
 | |
|         <result column="RETAIL_PRICE" property="retailPrice"/>
 | |
|         <result column="PK_DATA_ID" property="pkDataId"/>
 | |
|         <result column="directPushNumber" property="directPushNumber"/>
 | |
|         <result column="historyPerformancePv" property="historyPerformancePv"/>
 | |
|         <result column="STORE_LEVEL" property="storeLevel"/>
 | |
|         <result column="IS_MAKER_GIFT" property="isMakerGift"/>
 | |
|         <result column="EXPIRE_STATUS" property="expireStatus"/>
 | |
|         <result column="IS_PAY_REG" property="isPayReg"/>
 | |
|     </resultMap>
 | |
| 
 | |
|     <!-- 会员网体月表数据,用于查询 网体跟业绩分开 横向分表-->
 | |
|     <sql id="CuMemberTreeColumn">
 | |
|         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
 | |
|     </sql>
 | |
| 
 | |
|     <!-- 结算数据会员网体+业绩数据,用于结算 网体跟业绩冗余在一起-->
 | |
|     <sql id="CuMemberSettleColumn">
 | |
|         <include refid="CuMemberTreeColumn"></include>,
 | |
|         <include refid="CuMemberSettleDetailColumn"></include>,
 | |
|         <include refid="CuMemberBackColumn"></include>
 | |
|     </sql>
 | |
| 
 | |
|     <sql id="CuMemberSettleDetailColumn">
 | |
|         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
 | |
|     </sql>
 | |
| 
 | |
|     <sql id="memberParent">
 | |
|         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 (
 | |
|         <include refid="QueryMemberParent"></include>
 | |
|         ) a
 | |
|         inner join bd_grade bg
 | |
|         on a.pk_grade = bg.pk_id
 | |
|     </sql>
 | |
| 
 | |
|     <sql id="CuMemberBackColumn">
 | |
|         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
 | |
|     </sql>
 | |
| 
 | |
|     <sql id="CuMemberTableTrig">
 | |
|         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;
 | |
|     </sql>
 | |
| 
 | |
|     <sql id="QueryMemberParent">
 | |
|         <foreach collection="pkMemberList" item="item" open=" " close=" " separator=" union ">
 | |
|             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
 | |
|         </foreach>
 | |
|     </sql>
 | |
| 
 | |
|     <update id="createCuMemberTreeTable">
 | |
|         create table ${tableName}
 | |
|         (
 | |
|         pk_id NUMBER(20) primary key,
 | |
|         <include refid="CuMemberTreeColumn"></include>
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="createCuMemberSettleTable">
 | |
|         create table ${tableName}
 | |
|         (
 | |
|         <include refid="CuMemberSettleColumn"></include>
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="createCuMemberTreeParentIndex">
 | |
|         create index ${tableName}_parent
 | |
|         on
 | |
|         ${tableName}
 | |
|         (
 | |
|         pk_parent
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="createCuMemberTreePlaceIndex">
 | |
|         create index ${tableName}_place
 | |
|         on
 | |
|         ${tableName}
 | |
|         (
 | |
|         pk_place_parent,
 | |
|         place_dept
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="createCuMemberTableUniqueIndex">
 | |
|         create unique index ${tableName}_PK_M
 | |
|         on ${tableName}
 | |
|         (
 | |
|         PK_MEMBER,
 | |
|         period
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="createCuMemberTreeDayOnlyIndex">
 | |
|         create unique index ${tableName}_PK_M
 | |
|         on ${tableName}
 | |
|         (
 | |
|         PK_MEMBER
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="updateCuMemberSettleByPeriod">
 | |
|         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
 | |
|     </update>
 | |
| 
 | |
|     <insert id="insertCuMemberRetailRangeByMember">
 | |
|         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
 | |
|     </insert>
 | |
| 
 | |
|     <update id="createCuMemberTableSequence" statementType="STATEMENT">
 | |
|         <include refid="CuMemberTableTrig"></include>
 | |
|     </update>
 | |
| 
 | |
|     <update id="updateBackCuMemberSettleAward">
 | |
|         merge into ${settleTableName} a
 | |
|             using (select pk_member, max(old_level) old_level
 | |
|                    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.old_level
 | |
|     </update>
 | |
| 
 | |
|     <update id="updateBackCuMemberSettleRangeAward">
 | |
|         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
 | |
|                            and del_flag = 0
 | |
|                          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
 | |
|     </update>
 | |
| 
 | |
|     <update id="updateBackCuMemberRetailRangeAward">
 | |
|         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 ca.del_flag = 0
 | |
|         <if test="awardType == 1">
 | |
|             and cm.pk_awards <= ca.new_level
 | |
|         </if>
 | |
|         <if test="awardType == 2">
 | |
|             and cm.pk_share_awards <= ca.new_level
 | |
|         </if>
 | |
|         group by ca.pk_member
 | |
|         ) b
 | |
|         on (a.pk_member = b.pk_member)
 | |
|         when matched then
 | |
|         update set
 | |
|         <if test="awardType == 1">
 | |
|             a.pk_awards = b.pk_awards
 | |
|         </if>
 | |
|         <if test="awardType == 2">
 | |
|             a.pk_share_awards=b.pk_awards
 | |
|         </if>
 | |
|     </update>
 | |
| 
 | |
|     <update id="updateCuMemberRetailRangeAwardByDate">
 | |
|         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
 | |
|         where a.del_flag = 0
 | |
|         ) y
 | |
|         on x.pk_member=y.pk_member
 | |
|         where
 | |
|         <if test="awardType == 1">
 | |
|             x.pk_awards < y.pk_awards
 | |
|         </if>
 | |
|         <if test="awardType == 2">
 | |
|             x.pk_share_awards < y.pk_awards
 | |
|         </if>
 | |
|         ) b
 | |
|         on (a.pk_member = b.pk_member)
 | |
|         when matched then
 | |
|         update set
 | |
|         <if test="awardType == 1">
 | |
|             a.pk_awards = b.pk_awards
 | |
|         </if>
 | |
|         <if test="awardType == 2">
 | |
|             a.pk_share_awards=b.pk_awards
 | |
|         </if>
 | |
|     </update>
 | |
| 
 | |
|     <!-- 初始化期间奖衔 -->
 | |
|     <update id="updateCuMemberRetailRangeInitAward">
 | |
|         update ${rangeTableName}
 | |
|         set pk_awards = (select pk_id from bd_awards where awards_value = 0)
 | |
|     </update>
 | |
| 
 | |
|     <!-- 初始化期间V5奖衔 -->
 | |
|     <update id="updateCuMemberRetailRangeInitV5Award">
 | |
|         update ${rangeTableName}
 | |
|         set pk_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
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="updateCuMemberExpandSettle">
 | |
|         merge into ${settleTableName} a
 | |
|         using(
 | |
|         select * from (
 | |
|         <foreach collection="cuMemberTreeList" item="item" open=" " separator=" union " close=" ">
 | |
|             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
 | |
|         </foreach>)
 | |
|         ) 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
 | |
|     </update>
 | |
| 
 | |
|     <update id="createCuMemberRetailRangeSecondTable">
 | |
|         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
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <update id="createCuMemberRetailRangeTable">
 | |
|         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
 | |
|         )
 | |
|     </update>
 | |
| 
 | |
|     <delete id="truncateCuMemberTreeTable">
 | |
|         truncate table ${tableName}
 | |
|     </delete>
 | |
| 
 | |
|     <select id="queryExistOracleTable" resultType="java.lang.Integer">
 | |
|         select 1
 | |
|         from user_tables
 | |
|         where table_name = upper(#{tableName})
 | |
|     </select>
 | |
| 
 | |
|     <select id="queryExistOrderTableCount" resultType="java.lang.Integer">
 | |
|         select count(1)
 | |
|         from ${tableName}
 | |
|     </select>
 | |
| 
 | |
|     <select id="queryCuMemberSettleEnoughAwardAchieve" resultMap="CuMemberSettleExt">
 | |
|         select a.pk_member,
 | |
|                a.pk_parent,
 | |
|                a.pk_place_parent,
 | |
|                a.a_sum_real_pv,
 | |
|                a.b_sum_real_pv,
 | |
|                a.pk_country,
 | |
|                a.pk_settle_country,
 | |
|                bw.pk_id  pk_awards,
 | |
|                bdw.pk_id pk_ori_awards
 | |
|         from (select ct.pk_member,
 | |
|                      ct.pk_parent,
 | |
|                      ct.pk_place_parent,
 | |
|                      (ba.awards_value + 5) awards_value,
 | |
|                      ba.awards_value       ori_awards_value,
 | |
|                      ct.a_sum_real_pv,
 | |
|                      ct.b_sum_real_pv,
 | |
|                      ct.pk_country,
 | |
|                      ct.pk_settle_country
 | |
|               from ${settleTableName} ct
 | |
|                        inner join bd_awards ba
 | |
|                                   on ct.pk_awards = ba.pk_id
 | |
|               where ct.category = 0
 | |
|                 and ct.income_status = 0
 | |
|                 and ba.del_flag = 0) a
 | |
|                  inner join bd_awards bw
 | |
|                             on a.awards_value = bw.awards_value and a.pk_settle_country = bw.pk_country
 | |
|                  inner join bd_awards bdw
 | |
|                             on a.ori_awards_value = bdw.awards_value and a.pk_settle_country = bdw.pk_country
 | |
|         where bw.del_flag = 0
 | |
|           and bw.community_check <= a.a_sum_real_pv
 | |
|           and bw.community_check <= a.b_sum_real_pv
 | |
|         order by pk_member desc
 | |
|     </select>
 | |
| 
 | |
|     <select id="queryCuMemberSettlePlaceUnderUmbrella" resultType="java.lang.Integer">
 | |
|         select count(a.pk_member)
 | |
|         from (select a.*, b.pk_awards
 | |
|               from (select pk_member, pk_parent, pk_place_parent, place_dept
 | |
|                     from ${settleTableName} start with pk_place_parent = #{pkMember} and place_dept=#{placeDept}
 | |
|                     connect by pk_place_parent = prior pk_member) a
 | |
|                        inner join (select cw.pk_member, cw.new_level pk_awards
 | |
|                                    from cu_member_awards cw
 | |
|                                             inner join (select pk_member, max(pk_id) pk_id
 | |
|                                                         from cu_member_awards
 | |
|                                                         where del_flag = 0
 | |
|                                                           and UP_TYPE in (1, 3)
 | |
|                                                         group by pk_member) ca
 | |
|                                                        on cw.pk_id = ca.pk_id
 | |
|                                    where cw.del_flag = 0
 | |
|               ) b
 | |
|                                   on a.pk_member = b.pk_member) a
 | |
|                  inner join bd_awards ba
 | |
|                             on a.pk_awards = ba.pk_id
 | |
|         where ba.awards_value >= (select awards_value from bd_awards where pk_id = #{awardsValue})
 | |
|     </select>
 | |
| 
 | |
|     <select id="queryCuMemberSettleBloodUnderUmbrella" resultType="java.lang.Integer">
 | |
|         select count(pk_member)
 | |
|         from (
 | |
|                  select pk_member
 | |
|                  from ${settleTableName} start with pk_parent = #{pkMember}
 | |
|                  connect by pk_parent = prior pk_member) a
 | |
|         where a.pk_member in (
 | |
|             select x.pk_member
 | |
|             from (
 | |
|                      select a.*, b.pk_awards
 | |
|                      from (
 | |
|                               select pk_member, pk_parent, pk_place_parent, place_dept
 | |
|                               from ${settleTableName} start with pk_place_parent = #{pkMember} and place_dept=#{placeDept}
 | |
|                               connect by pk_place_parent = prior pk_member) a
 | |
|                               inner join (select cw.pk_member, cw.new_level pk_awards
 | |
|                                           from cu_member_awards cw
 | |
|                                                    inner join(select pk_member, max(pk_id) pk_id
 | |
|                                                               from cu_member_awards
 | |
|                                                               where del_flag = 0
 | |
|                                                                 and UP_TYPE in (1, 3)
 | |
|                                                               group by pk_member) ca
 | |
|                                                              on cw.pk_id = ca.pk_id
 | |
|                                           where cw.del_flag = 0
 | |
|                      ) b
 | |
|                                          on a.pk_member = b.pk_member
 | |
|                  ) x
 | |
|                      inner join bd_awards ba
 | |
|                                 on x.pk_awards = ba.pk_id
 | |
|             where ba.awards_value >= (select awards_value from bd_awards where pk_id = #{awardsValue}))
 | |
|     </select>
 | |
| 
 | |
|     <select id="queryMemberSettleBySaOrder" resultMap="CuMemberSettleExt">
 | |
|         select pk_member,member_code,member_name,c.pk_awards,c.pk_grade,account_status,category,income_status,pk_settle_country,
 | |
|         is_maker_space,purchase_status,share_status,bg.grade_value,pk_parent,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,c.pk_vertex,
 | |
|         repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,min_achieve,round,second,c.register_authority,store_level,
 | |
|         c.is_maker_gift,c.expire_status from ${settleTableName} c
 | |
|         left join bd_grade bg
 | |
|         on c.pk_grade = bg.pk_id
 | |
|         where pk_member in
 | |
|         <foreach collection="memberPkList" item="item" open="(" close=")" separator=",">
 | |
|             #{item}
 | |
|         </foreach>
 | |
|     </select>
 | |
| 
 | |
|     <select id="batchQueryCuMemberSettlePlaceParent" resultMap="CuMemberSettleExt">
 | |
|         select pk_order,pk_member,member_code,member_name,pk_place_parent,place_dept,pk_grade,a.pk_awards,bg.grade_value,account_status,
 | |
|         income_status,pk_settle_country,purchase_status,share_status,a.register_authority,
 | |
|         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_vertex,
 | |
|         min_achieve,round,second,store_level,expire_status from (
 | |
|         <foreach collection="firPurchaseOrderList" item="item" open=" " close=" " separator=" union all ">
 | |
|             select #{item.pkId} pk_order,pk_member,member_code,member_name,pk_place_parent,place_dept,pk_grade,pk_awards,account_status,
 | |
|             income_status,pk_settle_country,purchase_status,share_status,register_authority,
 | |
|             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_vertex,
 | |
|             min_achieve,round,second,store_level,expire_status,level sort
 | |
|             from ${settleTableName}
 | |
|             start with pk_member = #{item.pkMember}
 | |
|             connect by pk_member = prior pk_place_parent
 | |
|         </foreach>
 | |
|         ) a
 | |
|         left join bd_grade bg
 | |
|         on a.pk_grade = bg.pk_id
 | |
|         order by a.pk_order,a.sort
 | |
|     </select>
 | |
| 
 | |
|     <select id="batchQueryCuMemberSettleParent" resultMap="CuMemberSettleExt">
 | |
|         <include refid="memberParent"></include>
 | |
|     </select>
 | |
| 
 | |
|     <select id="batchQueryCuMemberSettleParentForSpecial" resultMap="CuMemberSettleExt">
 | |
|         select a.pk_member,a.pk_parent,a.member_code,a.member_name,a.pk_awards,a.account_status,a.register_authority,a.customer_type,
 | |
|         a.income_status,a.pk_settle_country,a.purchase_status,a.share_status,a.is_maker_space,
 | |
|         a.a_balance,a.b_balance,a.r_a_balance,a.r_b_balance,a.rep_a_balance,a.rep_b_balance,a.r_rep_a_balance,a.r_rep_b_balance,
 | |
|         a.register_amount,a.register_pv,a.upgrade_amount,a.upgrade_pv,a.repurchase_amount,a.pk_center_code,
 | |
|         a.repurchase_pv,a.hi_fun_amount,a.hi_fun_pv,a.mall_amount,a.mall_pv,a.category,a.pk_grade,bg.grade_value,
 | |
|         a.min_achieve,a.round,second,ap.pk_id ap_pk_id,nvl(ap.usable_quantity,0) usable_quantity,
 | |
|         nvl(bp.retail_price,0) retail_price,ap.pk_data_id from (
 | |
|         <include refid="QueryMemberParent"></include>
 | |
|         ) a
 | |
|         inner join bd_grade bg
 | |
|         on a.pk_grade = bg.pk_id
 | |
|         left join ac_pick ap
 | |
|         on ap.pk_member = a.pk_member and ap.pick_type=8 and ap.del_flag=0
 | |
|         left join bd_product bp
 | |
|         on ap.pk_data_id = bp.pk_id
 | |
|     </select>
 | |
| 
 | |
|     <select id="batchQueryMemberSettleParentByMemberPk" resultMap="CuMemberSettleExt">
 | |
|         select
 | |
|         cl.pk_member,cl.member_code,cl.member_name,cl.pk_awards,cl.pk_grade,cl.account_status,cl.category,cl.income_status,cl.pk_settle_country,
 | |
|         cl.is_maker_space,cl.purchase_status,cl.share_status,
 | |
|         cl.a_balance,cl.b_balance,cl.r_a_balance,cl.r_b_balance,cl.rep_a_balance,cl.rep_b_balance,cl.r_rep_a_balance,cl.r_rep_b_balance,
 | |
|         cl.register_amount,cl.register_pv,cl.upgrade_amount,cl.upgrade_pv,cl.repurchase_amount,cl.pk_center_code,cl.register_authority,
 | |
|         cl.repurchase_pv,cl.hi_fun_amount,cl.hi_fun_pv,cl.mall_amount,cl.mall_pv,cl.min_achieve,cl.round,cl.second from ${settleTableName} ct
 | |
|         inner join ${settleTableName} cl
 | |
|         on ct.pk_parent = cl.pk_member
 | |
|         where ct.pk_member in
 | |
|         <foreach collection="memberPkList" item="item" open="(" close=")" separator=",">
 | |
|             #{item}
 | |
|         </foreach>
 | |
|         union
 | |
|         select pk_member,member_code,member_name,pk_awards,pk_grade,account_status,category,income_status,pk_settle_country,
 | |
|         is_maker_space,purchase_status,share_status,
 | |
|         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,register_authority,
 | |
|         repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,min_achieve,round,second from ${settleTableName}
 | |
|         where pk_member in
 | |
|         <foreach collection="memberPkList" item="item" open="(" close=")" separator=",">
 | |
|             #{item}
 | |
|         </foreach>
 | |
|     </select>
 | |
| 
 | |
|     <select id="queryMemberSettleByAwards" resultType="com.hzs.common.domain.member.ext.CuMemberSettleExt">
 | |
|         select a.pk_settle_country, a.income_status, a.pk_member, a.expire_status, a.purchase_status, ba.abonus_ratio, c.real_income_total
 | |
|         from ${settleTableName} a
 | |
|                  inner join bd_awards ba
 | |
|                             on a.pk_awards = ba.pk_id
 | |
|                  inner join (
 | |
|             select pk_member, sum(real_income_total - global_points) real_income_total
 | |
|             from cu_member_bonus
 | |
|             where del_flag = 0
 | |
|               and period between #{startPeriod} and #{endPeriod}
 | |
|               and real_income_total > 0
 | |
|             group by pk_member) c
 | |
|                             on a.pk_member = c.pk_member
 | |
|         where ba.del_flag = 0
 | |
|           and ba.awards_value >= 5
 | |
|           and ba.abonus_ratio > 0
 | |
|           and a.pk_settle_country = 1
 | |
|         union
 | |
|         select a.pk_settle_country, a.income_status, a.pk_member, 1 expire_status, a.purchase_status, ba.abonus_ratio, c.real_income_total
 | |
|         from ${rangeTableName} a
 | |
|                  inner join bd_awards ba
 | |
|                             on a.pk_benefit_awards = ba.pk_id
 | |
|                  inner join (
 | |
|             select pk_member, sum(real_income_total) real_income_total
 | |
|             from cu_member_bonus
 | |
|             where del_flag = 0
 | |
|               and period between #{startPeriod} and #{endPeriod}
 | |
|               and real_income_total > 0
 | |
|             group by pk_member
 | |
|         ) c
 | |
|                             on a.pk_member = c.pk_member
 | |
|         where ba.del_flag = 0
 | |
|           and ba.awards_value >= 5
 | |
|           and ba.abonus_ratio > 0
 | |
|           and a.pk_settle_country = 1
 | |
|     </select>
 | |
| 
 | |
| </mapper>
 |