824 lines
39 KiB
XML
824 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),
|
|
pk_share_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),
|
|
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
|
|
)
|
|
</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 10 not null,
|
|
pk_share_awards number(4) default 10 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,
|
|
new_consume_pv number(17,6) default 0 not null,
|
|
team_new_box_num number(8) default 0 not null,
|
|
team_new_pv number(17,6) default 0 not null,
|
|
team_new_amount 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 10 not null,
|
|
pk_share_awards number(4) default 10 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),
|
|
new_box_num number(8) default 0 not null,
|
|
consume_box_num number(8) default 0 not null,
|
|
month_box_num number(8) default 0 not null,
|
|
new_consume_pv number(17,6) default 0 not null,
|
|
consume_pv number(17,6) default 0 not null,
|
|
month_consume_pv number(17,6) default 0 not null,
|
|
team_new_box_num number(8) default 0 not null,
|
|
team_box_num number(8) default 0 not null,
|
|
team_month_box_num number(8) default 0 not null,
|
|
team_new_pv number(17,6) default 0 not null,
|
|
team_consume_pv 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_consume_amount number(17,6) default 0 not null,
|
|
team_month_amount 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>
|