java-zk-app/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml

1693 lines
92 KiB
XML
Raw Normal View History

2025-03-23 09:44:16 +08:00
<?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">
2025-03-23 09:44:16 +08:00
<!-- 通用查询映射结果 -->
<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>
<insert id="insertCuMemberSettleByMember">
insert into ${settleTableName}(pk_member,pk_parent,pk_place_parent,place_dept,member_code,member_name,
customer_type,phone,pk_grade,pk_awards,account_status,pay_status,register_authority,category,
purchase_type,purchase_status,share_status,income_status,pk_team_code,is_maker_space,
pk_center_code,pk_vertex,pk_settle_country,is_real_name,pk_country,pk_rate,
store_level,is_maker_gift,expire_status)
select cm.pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name,
customer_type,phone,pk_settle_grade,pk_awards,account_status,pay_status,register_authority,category,
(case when purchase_status = 0 then 1 else 0 end) purchase_type,
purchase_status,share_status,income_status,pk_team_code,is_maker_space,pk_center_code,
pk_vertex,pk_settle_country,is_real_name,cm.pk_country,nvl(bc.pk_id,-1) pk_rate,
nvl(b.store_level,0) store_level,cm.is_maker_gift,cm.expire_status 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 &lt;=sysdate
group by pk_country) bc
on cm.pk_settle_country = bc.pk_country
left join(
select pk_member,store_level from cu_maker_space
where del_flag=0 and approve_status=5
and apply_status=5 and store_type=1
) b
on cm.pk_id=b.pk_member
where cm.del_flag=0 and cm.system_type=0
</insert>
<insert id="insertCuMemberTreeBySettleDate">
insert into ${targetTableName}(period,pk_member,pk_parent,pk_place_parent,place_dept,member_code,
member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status,
register_authority,category,purchase_type,purchase_status,
share_status,income_status,pk_team_code,pk_center_code,pk_vertex,
pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country)
select #{period} period,pk_member,pk_parent,pk_place_parent,place_dept,member_code,
member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status,
register_authority,category,purchase_type,purchase_status,
share_status,income_status,pk_team_code,pk_center_code,pk_vertex,
pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country from ${sourceTableName}
</insert>
<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="createCuMemberSecondTable">
create table ${tableName}
(
pk_member NUMBER(20) not null,
pk_country number(4) default 1 not null,
expire_status number(1) default 1,
<include refid="CuMemberSettleDetailColumn"></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="updateCuMemberTreeByCancelOrder">
update ${settleTableName} set customer_type =2,category =1
where pk_member in
<foreach collection="saOrderExtList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
</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="insertCuMemberSettleByHis">
insert into ${settleTableName}(pk_member,PK_PARENT,PK_PLACE_PARENT,PLACE_DEPT,MEMBER_CODE,member_name,
CUSTOMER_TYPE,PHONE,PK_GRADE,PK_AWARDS,ACCOUNT_STATUS,PAY_STATUS,REGISTER_AUTHORITY,
CATEGORY,PURCHASE_TYPE,PURCHASE_STATUS,SHARE_STATUS,INCOME_STATUS,PK_TEAM_CODE,PK_CENTER_CODE,
PK_VERTEX,PK_SETTLE_COUNTRY,IS_REAL_NAME,IS_BUS_LICENSE,IS_MAKER_SPACE,PK_COUNTRY,PK_RATE,
a_balance,b_balance,A_SUM_AMOUNT,B_SUM_AMOUNT,A_SUM_PV,B_SUM_PV,
A_NEW_AMOUNT,B_NEW_AMOUNT,A_NEW_PV,B_NEW_PV,A_SUM_REAL_AMOUNT,B_SUM_REAL_AMOUNT,A_SUM_REAL_PV,B_SUM_REAL_PV,
REP_A_BALANCE,REP_B_BALANCE,REP_A_NEW_AMOUNT,REP_B_NEW_AMOUNT,REP_A_NEW_PV,REP_B_NEW_PV,REP_A_SUM_AMOUNT,
REP_B_SUM_AMOUNT,REP_A_SUM_PV,REP_B_SUM_PV,REGISTER_AMOUNT,REGISTER_PV,REGISTER_NEW_AMOUNT,REGISTER_NEW_PV,
UPGRADE_AMOUNT,UPGRADE_PV,UPGRADE_NEW_AMOUNT,UPGRADE_NEW_PV,REPURCHASE_AMOUNT,REPURCHASE_PV,
REPURCHASE_NEW_AMOUNT,REPURCHASE_NEW_PV,HI_FUN_AMOUNT,HI_FUN_PV,HI_FUN_NEW_AMOUNT,HI_FUN_NEW_PV,
MALL_AMOUNT,MALL_PV,MALL_NEW_AMOUNT,MALL_NEW_PV,REGISTER_BLO_NEW_PV,UPGRADE_BLO_NEW_PV,REPURCHASE_BLO_NEW_PV,
HI_FUN_BLO_NEW_PV,MALL_BLO_NEW_PV,MIN_ACHIEVE,ROUND,SECOND)
select ca.pk_member,ca.PK_PARENT,ca.PK_PLACE_PARENT,ca.PLACE_DEPT,ca.MEMBER_CODE,ca.member_name,
ca.CUSTOMER_TYPE,ca.PHONE,PK_GRADE,PK_AWARDS,ACCOUNT_STATUS,PAY_STATUS,REGISTER_AUTHORITY,
CATEGORY,PURCHASE_TYPE,PURCHASE_STATUS,SHARE_STATUS,INCOME_STATUS,PK_TEAM_CODE,PK_CENTER_CODE,
PK_VERTEX,ca.PK_SETTLE_COUNTRY,IS_REAL_NAME,IS_BUS_LICENSE,IS_MAKER_SPACE,ca.PK_COUNTRY,PK_RATE,
a_balance,b_balance,A_SUM_AMOUNT,B_SUM_AMOUNT,A_SUM_PV,B_SUM_PV,
A_NEW_AMOUNT,B_NEW_AMOUNT,A_NEW_PV,B_NEW_PV,A_SUM_REAL_AMOUNT,B_SUM_REAL_AMOUNT,A_SUM_REAL_PV,B_SUM_REAL_PV,
REP_A_BALANCE,REP_B_BALANCE,REP_A_NEW_AMOUNT,REP_B_NEW_AMOUNT,REP_A_NEW_PV,REP_B_NEW_PV,REP_A_SUM_AMOUNT,
REP_B_SUM_AMOUNT,REP_A_SUM_PV,REP_B_SUM_PV,REGISTER_AMOUNT,REGISTER_PV,REGISTER_NEW_AMOUNT,REGISTER_NEW_PV,
UPGRADE_AMOUNT,UPGRADE_PV,UPGRADE_NEW_AMOUNT,UPGRADE_NEW_PV,REPURCHASE_AMOUNT,REPURCHASE_PV,
REPURCHASE_NEW_AMOUNT,REPURCHASE_NEW_PV,HI_FUN_AMOUNT,HI_FUN_PV,HI_FUN_NEW_AMOUNT,HI_FUN_NEW_PV,
MALL_AMOUNT,MALL_PV,MALL_NEW_AMOUNT,MALL_NEW_PV,REGISTER_BLO_NEW_PV,UPGRADE_BLO_NEW_PV,REPURCHASE_BLO_NEW_PV,
HI_FUN_BLO_NEW_PV,MALL_BLO_NEW_PV,0 MIN_ACHIEVE,0 ROUND,1 SECOND from ${achieveTableName} ct
inner join ${treeTableName} ca
on ca.pk_member=ct.pk_member and ca.period=ct.period
where ca.period=#{period}
</insert>
<insert id="insertCuMemberRangeByMember">
insert into ${settleTableName}(pk_member,pk_parent,member_code,member_name,
customer_type,phone,pk_grade,pk_awards,pk_range_awards,pk_benefit_awards,account_status,pay_status,register_authority,category,
purchase_status,income_status,pk_team_code,
pk_center_code,pk_vertex,pk_settle_country,is_real_name,pk_country,pk_rate,assess_status,month_member,range_store_status,pay_time)
select cm.pk_id,pk_parent,member_code,member_name,
customer_type,phone,pk_settle_grade,cm.pk_awards,pk_range_awards,pk_benefit_awards,account_status,pay_status,register_authority,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,
(case when nvl(ca.assess_status,2)=1 then 0 else nvl(ca.assess_status,2) end) assess_status,
(case when pay_time>#{firstDate,jdbcType=DATE} then 0 else 1 end) month_member,nvl(cs.status,0) range_store_status,cm.pay_time 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 &lt;=sysdate
group by pk_country) bc
on cm.pk_settle_country = bc.pk_country
left join cu_range_store cs
on cs.pk_member=cm.pk_id and cs.del_flag=0
left join cu_member_assess${year} ca
on ca.pk_member=cm.pk_id and ca.period=#{period} and ca.assess_type=0
where cm.del_flag=0 and cm.system_type=1
</insert>
<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 &lt;=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="updateCuMemberSettleMonthByPeriod">
merge into ${updateTableName} a
using(select pk_member,pk_awards from tmp_cu_member_awards) b
on (a.pk_member = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards
where period >= #{period}
</update>
<update id="createCuMemberTableSequence" statementType="STATEMENT">
<include refid="CuMemberTableTrig"></include>
</update>
<update id="updateCuMemberSettleExemptByAward">
merge into ${settleTableName} a
using (
select pk_member,max(purchase_type) purchase_type from(
select pk_id pk_member,2 purchase_type from cu_member where del_flag =0
and category =0 and pay_status = 1
and pay_time >= #{startDate, jdbcType=DATE} and pay_time &lt; #{endDate, jdbcType=DATE}
union
select pk_member,3 purchase_type from cu_member_awards
where del_flag=0 and purchase_status= 0 and
creation_time >= #{startDate, jdbcType=DATE} and creation_time &lt; #{endDate, jdbcType=DATE})
group by pk_member
) b
on (a.pk_member = b.pk_member)
when matched then
update set a.purchase_status=0,a.purchase_type=b.purchase_type
</update>
<update id="updateCuMemberSettle">
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.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv} b_new_pv,
#{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount,
#{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv,
#{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewAmount} register_new_amount,#{item.registerNewPv} register_new_pv,
#{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewAmount} upgrade_new_amount,#{item.upgradeNewPv} upgrade_new_pv,
#{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewAmount} repurchase_new_amount,#{item.repurchaseNewPv} repurchase_new_pV,
#{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewAmount} hi_fun_new_amount,#{item.hiFunNewPv} hi_fun_new_pv,
#{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewAmount} mall_new_amount,#{item.mallNewPv} mall_new_pv,
#{item.registerBloNewPv} register_blo_new_pv,#{item.upgradeBloNewPv} upgrade_blo_new_pv,#{item.repurchaseBloNewPv} repurchase_blo_new_pv,
#{item.hiFunBloNewPv} hi_fun_blo_new_pv,#{item.mallBloNewPv} mall_blo_new_pv,
#{item.rABalance} r_a_balance,#{item.rBBalance} r_b_balance,#{item.rRepABalance} r_rep_a_balance,
#{item.rRepBBalance} r_rep_b_balance,#{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual
</foreach>)
2025-03-23 09:44:16 +08:00
) 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.a_new_amount=b.a_new_amount,
a.b_new_amount=b.b_new_amount,a.a_new_pv=b.a_new_pv,a.b_new_pv=b.b_new_pv,a.rep_a_balance=b.rep_a_balance,
a.rep_b_balance=b.rep_b_balance, a.rep_a_new_amount=b.rep_a_new_amount,a.rep_b_new_amount=b.rep_b_new_amount,
a.rep_a_new_pv=b.rep_a_new_pv,a.rep_b_new_pv=b.rep_b_new_pv,
a.register_amount = b.register_amount,a.register_pv=b.register_pv,a.register_new_amount = b.register_new_amount,a.register_new_pv=b.register_new_pv,
a.upgrade_amount=b.upgrade_amount,a.upgrade_pv=b.upgrade_pv,a.upgrade_new_amount=b.upgrade_new_amount,a.upgrade_new_pv=b.upgrade_new_pv,
a.repurchase_amount=b.repurchase_amount,a.repurchase_pv=b.repurchase_pv,a.repurchase_new_amount=b.repurchase_new_amount,a.repurchase_new_pv=b.repurchase_new_pv,
a.hi_fun_amount=b.hi_fun_amount,a.hi_fun_pv=b.hi_fun_pv,a.hi_fun_new_amount=b.hi_fun_new_amount,a.hi_fun_new_pv=b.hi_fun_new_pv,
a.mall_amount=b.mall_amount,a.mall_pv=b.mall_pv,a.mall_new_amount=b.mall_new_amount,a.mall_new_pv=b.mall_new_pv,
a.register_blo_new_pv=b.register_blo_new_pv,a.upgrade_blo_new_pv=b.upgrade_blo_new_pv,a.repurchase_blo_new_pv=b.repurchase_blo_new_pv,
a.hi_fun_blo_new_pv=b.hi_fun_blo_new_pv,a.mall_blo_new_pv=b.mall_blo_new_pv,
a.r_a_balance=b.r_a_balance,a.r_b_balance=b.r_b_balance,a.r_rep_a_balance=b.r_rep_a_balance,a.r_rep_b_balance=b.r_rep_b_balance,
a.min_achieve=b.min_achieve,a.round = b.round,a.second=b.second,
a.a_sum_amount = a.a_sum_amount + b.a_new_amount,
a.b_sum_amount = a.b_sum_amount + b.b_new_amount,
a.a_sum_pv = a.a_sum_pv + b.a_new_pv,
a.b_sum_pv = a.b_sum_pv + b.b_new_pv,
a.rep_a_sum_amount = a.rep_a_sum_amount + b.rep_a_new_amount,
a.rep_b_sum_amount = a.rep_b_sum_amount + b.rep_b_new_amount,
a.rep_a_sum_pv = a.rep_a_sum_pv + b.rep_a_new_pv,
a.rep_b_sum_pv = a.rep_b_sum_pv + b.rep_b_new_pv,
a.a_sum_real_amount = a.a_sum_real_amount + b.a_new_amount + b.rep_a_new_amount,
a.b_sum_real_amount = a.b_sum_real_amount + b.b_new_amount + b.rep_b_new_amount,
a.a_sum_real_pv = a.a_sum_real_pv + b.a_new_pv + b.rep_a_new_pv,
a.b_sum_real_pv = a.b_sum_real_pv + b.b_new_pv + b.rep_b_new_pv
</update>
<update id="updateCuMemberSecond">
merge into ${settleTableName} a
using(
<foreach collection="cuMemberTreeList" item="item" open=" " separator=" union all " close=" ">
select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance,
#{item.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv} b_new_pv,
#{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount,
#{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv,
#{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewPv} register_new_pv,
#{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewPv} upgrade_new_pv,
#{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewPv} repurchase_new_pv,
#{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewPv} hi_fun_new_pv,
#{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewPv} mall_new_pv,
#{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.a_new_amount=b.a_new_amount,
a.b_new_amount=b.b_new_amount,a.a_new_pv=b.a_new_pv,a.b_new_pv=b.b_new_pv,a.rep_a_balance=b.rep_a_balance,
a.rep_b_balance=b.rep_b_balance, a.rep_a_new_amount=b.rep_a_new_amount,a.rep_b_new_amount=b.rep_b_new_amount,
a.rep_a_new_pv=b.rep_a_new_pv,a.rep_b_new_pv=b.rep_b_new_pv,
a.register_amount = b.register_amount,a.register_pv=b.register_pv,a.register_new_pv=b.register_new_pv,
a.upgrade_amount=b.upgrade_amount,a.upgrade_pv=b.upgrade_pv,a.upgrade_new_pv=b.upgrade_new_pv,
a.repurchase_amount=b.repurchase_amount,a.repurchase_pv=b.repurchase_pv,a.repurchase_new_pv=b.repurchase_new_pv,
a.hi_fun_amount=b.hi_fun_amount,a.hi_fun_pv=b.hi_fun_pv,a.hi_fun_new_pv=b.hi_fun_new_pv,
a.mall_amount=b.mall_amount,a.mall_pv=b.mall_pv,a.mall_new_pv=b.mall_new_pv,
a.min_achieve=b.min_achieve,a.round = b.round,a.second=b.second,
a.a_sum_amount = a.a_sum_amount + b.a_new_amount,
a.b_sum_amount = a.b_sum_amount + b.b_new_amount,
a.a_sum_pv = a.a_sum_pv + b.a_new_pv,
a.b_sum_pv = a.b_sum_pv + b.b_new_pv,
a.rep_a_sum_amount = a.rep_a_sum_amount + b.rep_a_new_amount,
a.rep_b_sum_amount = a.rep_b_sum_amount + b.rep_b_new_amount,
a.rep_a_sum_pv = a.rep_a_sum_pv + b.rep_a_new_pv,
a.rep_b_sum_pv = a.rep_b_sum_pv + b.rep_b_new_pv,
a.a_sum_real_amount = a.a_sum_real_amount + b.a_new_amount + b.rep_a_new_amount,
a.b_sum_real_amount = a.b_sum_real_amount + b.b_new_amount + b.rep_b_new_amount,
a.a_sum_real_pv = a.a_sum_real_pv + b.a_new_pv + b.rep_a_new_pv,
a.b_sum_real_pv = a.b_sum_real_pv + b.b_new_pv + b.rep_b_new_pv
</update>
<update id="updateCuMemberSecondPlaceParent">
merge into ${secondTableName} a
using (
select B.pk_id,b.pk_settle_country pk_country,nvl(st.A_BALANCE,0) A_BALANCE,nvl(st.B_BALANCE,0) B_BALANCE,
nvl(yt.A_SUM_AMOUNT,0) A_SUM_AMOUNT,nvl(yt.B_SUM_AMOUNT,0) B_SUM_AMOUNT,
nvl(yt.A_SUM_PV,0) A_SUM_PV,nvl(yt.b_SUM_PV,0) b_SUM_PV,nvl(st.A_NEW_AMOUNT,0) A_NEW_AMOUNT,
nvl(st.B_NEW_AMOUNT,0) B_NEW_AMOUNT,nvl(st.A_NEW_PV,0) A_NEW_PV,
nvl(ST.B_NEW_PV,0) B_NEW_PV,nvl(yt.A_SUM_REAL_AMOUNT,0) A_SUM_REAL_AMOUNT,
nvl(yt.B_SUM_REAL_AMOUNT,0) B_SUM_REAL_AMOUNT,
nvl(yt.A_SUM_REAL_PV,0) A_SUM_REAL_PV,
nvl(yt.B_SUM_REAL_PV,0) B_SUM_REAL_PV,
nvl(ST.REP_A_BALANCE,0) REP_A_BALANCE,nvl(ST.REP_B_BALANCE,0) REP_B_BALANCE,
nvl(ST.REP_A_NEW_AMOUNT,0) REP_A_NEW_AMOUNT,
nvl(ST.REP_B_NEW_AMOUNT,0) REP_B_NEW_AMOUNT,nvl(ST.REP_A_NEW_PV,0) REP_A_NEW_PV,
nvl(ST.REP_B_NEW_PV,0) REP_B_NEW_PV,nvl(yt.REP_A_SUM_AMOUNT,0) REP_A_SUM_AMOUNT,
nvl(yt.REP_B_SUM_AMOUNT,0) REP_B_SUM_AMOUNT,nvl(yt.REP_A_SUM_PV,0) REP_A_SUM_PV,
nvl(yt.REP_B_SUM_PV,0) REP_B_SUM_PV,
nvl(ST.ROUND,0) ROUND,nvl(nvl(ST.SECOND,yt.second),1) SECOND,nvl(ST.MIN_ACHIEVE,0) MIN_ACHIEVE,b.expire_status from
(select t.pk_id,t.pk_settle_country,t.expire_status from cu_member t
where t.del_flag = 0 start with t.pk_id = #{pkMember}
connect by t.pk_id = prior
<choose>
<when test="isPlace == 0"> t.pk_place_parent</when>
<otherwise> t.pk_parent</otherwise>
</choose>
<if test="cuMemberTreeList != null and cuMemberTreeList.size >0">
union
select pk_id,t.pk_settle_country,t.expire_status from cu_member t
where t.del_flag= 0 and pk_id in
<foreach collection="cuMemberTreeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
) b
left join ${secondTableName} st
on b.pk_id = st.pk_member
left join ${settleTableName} yt
on b.pk_id=yt.pk_member
) b
on (a.pk_member = b.pk_id)
when matched then
update set a.a_sum_amount=b.a_sum_amount,a.b_sum_amount=b.b_sum_amount,
a.a_sum_pv=b.a_sum_pv,a.b_sum_pv=b.b_sum_pv,
a.a_sum_real_amount=b.a_sum_real_amount,
a.b_sum_real_amount=b.b_sum_real_amount,
a.a_sum_real_pv=b.a_sum_real_pv,
a.b_sum_real_pv=b.b_sum_real_pv,
a.rep_a_sum_amount=b.rep_a_sum_amount,a.rep_b_sum_amount=b.rep_b_sum_amount,
a.rep_a_sum_pv=b.rep_a_sum_pv,a.rep_b_sum_pv=b.rep_b_sum_pv
when not matched then
insert (pk_member,pk_country,a_balance,b_balance,a_sum_amount,b_sum_amount,a_sum_pv,b_sum_pv,
a_new_amount,b_new_amount,a_new_pv,b_new_pv,a_sum_real_amount,b_sum_real_amount,
a_sum_real_pv,b_sum_real_pv,rep_a_balance,rep_b_balance,rep_a_new_amount,
rep_b_new_amount,rep_a_new_pv,rep_b_new_pv,rep_a_sum_amount,rep_b_sum_amount,
rep_a_sum_pv,rep_b_sum_pv,round,second,min_achieve,expire_status)
values(b.pk_id,b.pk_country,b.a_balance,b.b_balance,b.a_sum_amount, b.b_sum_amount,b.a_sum_pv,b.b_sum_pv,
b.a_new_amount,b.b_new_amount,b.a_new_pv,b.b_new_pv,b.a_sum_real_amount,b.b_sum_real_amount,
b.a_sum_real_pv,b.b_sum_real_pv,b.rep_a_balance,b.rep_b_balance,b.rep_a_new_amount,
b.rep_b_new_amount,b.rep_a_new_pv,b.rep_b_new_pv,b.rep_a_sum_amount,b.rep_b_sum_amount,
b.rep_a_sum_pv,b.rep_b_sum_pv,b.round,b.second,b.min_achieve,b.expire_status)
</update>
<update id="dropCuMemberSettleTable">
drop table ${tableName}
</update>
<update id="updateCuMemberTreeGradeByCancelOrder">
merge into ${settleTableName} a
using (select cl.pk_id,cl.pk_member,cl.new_level from cu_member_level cl
inner join (
select pk_member,max(pk_id) pk_id from cu_member_level
where del_flag=0 and upgrade_time &lt; #{currentDate, jdbcType=DATE}
and pk_member in
<foreach collection="saOrderExtList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
group by pk_member) ce
on cl.pk_id = ce.pk_id
) b
on (a.pk_member = b.pk_member)
when matched then
update set a.pk_grade = b.new_level
</update>
<update id="mergeCuMemberTreeBySettleDate">
merge into ${targetTableName} a
using(
select #{period} period,pk_member,pk_parent,pk_place_parent,place_dept,member_code,
member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status,
register_authority,category,purchase_type,purchase_status,
share_status,income_status,pk_team_code,pk_center_code,pk_vertex,
pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country from ${sourceTableName}
) b
on (a.pk_member=b.pk_member and a.period=b.period)
WHEN MATCHED THEN
update set a.pk_parent = b.pk_parent,a.pk_place_parent = b.pk_place_parent,a.place_dept = b.place_dept,
a.member_code = b.member_code,a.member_name = b.member_name,a.customer_type = b.customer_type,a.phone = b.phone,
a.pk_grade = b.pk_grade,a.pk_awards = b.pk_awards,a.account_status = b.account_status,a.pay_status = b.pay_status,
a.register_authority = b.register_authority,a.category = b.category,a.purchase_type = b.purchase_type,
a.purchase_status = b.purchase_status,a.share_status = b.share_status,a.income_status = b.income_status,
a.pk_team_code = b.pk_team_code,a.pk_center_code = b.pk_center_code,a.pk_vertex = b.pk_vertex,
a.pk_settle_country = b.pk_settle_country,a.is_real_name = b.is_real_name,
a.is_bus_license = b.is_bus_license,a.is_maker_space = b.is_maker_space,a.pk_country = b.pk_country
WHEN NOT MATCHED THEN
insert (period,pk_member,pk_parent,pk_place_parent,place_dept,member_code,
member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status,
register_authority,category,purchase_type,purchase_status,
share_status,income_status,pk_team_code,pk_center_code,pk_vertex,
pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country)
values(b.period,b.pk_member,b.pk_parent,b.pk_place_parent,b.place_dept,b.member_code,
b.member_name,b.customer_type,b.phone,b.pk_grade,b.pk_awards,b.account_status,b.pay_status,
b.register_authority,b.category,b.purchase_type,b.purchase_status,
b.share_status,b.income_status,b.pk_team_code,b.pk_center_code,b.pk_vertex,
b.pk_settle_country,b.is_real_name,b.is_bus_license,b.is_maker_space,b.pk_country)
</update>
<update id="updateBackCuMemberSettleAward">
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
</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
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}
<if test="awardType == 1">
and cm.pk_awards &lt;= ca.new_level
</if>
<if test="awardType == 2">
and cm.pk_share_awards &lt;= 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 &lt;=#{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
<if test="awardType == 1">
x.pk_awards &lt; y.pk_awards
</if>
<if test="awardType == 2">
x.pk_share_awards &lt; 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>
<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>)
2025-03-23 09:44:16 +08:00
) 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="updateCuMemberAwardsBySettle">
merge into cu_member a
using (
select ca.pk_member,max(ca.pk_awards) pk_awards from cu_member_settle_awards ca
inner join cu_member cm
on cm.pk_id=ca.pk_member
where cm.system_type= 0 and period between #{startPeriod} and #{period}
group by ca.pk_member
) b
on (a.pk_id=b.pk_member)
when matched then
update set a.pk_awards=b.pk_awards
</update>
<update id="updateCuMemberSettleAwardsBySettle">
merge into ${settleTableName} a
using (
select pk_member,max(pk_awards) pk_awards from cu_member_settle_awards
where period between #{startPeriod} and #{period}
group by pk_member
) b
on (a.pk_member=b.pk_member)
when matched then
update set a.pk_awards=b.pk_awards
</update>
<update id="updateCuMemberMaxAwardsBySettle">
merge into cu_member a
using (
select pk_member,max(pk_awards) pk_awards from cu_member_settle_awards
group by pk_member
) b
on (a.pk_id=b.pk_member)
when matched then
update set a.pk_max_awards=b.pk_awards
</update>
<update id="updateCuMemberAwardsInit">
merge into cu_member a
using(
select ct.pk_id,ba.pk_id pk_awards from cu_member ct
inner join bd_awards ba
on ct.pk_settle_country = ba.pk_country
where ba.awards_value=0 and ba.del_flag=0 and ct.system_type=0) b
on (a.pk_id=b.pk_id)
when matched then
update set a.pk_awards=b.pk_awards,a.pk_max_awards=b.pk_awards
</update>
<update id="updateCuMemberSettleAwardsInit">
merge into ${settleTableName} a
using(
select ct.pk_member,ba.pk_id pk_awards from ${settleTableName} ct
inner join bd_awards ba
on ct.pk_settle_country = ba.pk_country
where ba.awards_value=0 and ba.del_flag=0) b
on (a.pk_member=b.pk_member)
when matched then
update set a.pk_awards=b.pk_awards
</update>
<update id="createCuMemberRangeTable">
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) not null,
pk_range_awards number(4) default 1 not null,
pk_benefit_awards number(6) default 1 not null,
account_status number(1) default 0 not null,
pay_status NUMBER(2) default 0 not null,
pay_time DATE,
register_authority number(2) default 0 not null,
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,
pk_rate NUMBER(6) ,
consume_status number(2) default 1 not null,
consume_pv number(17,6) default 0 not null,
month_pv number(17,6) default 0 not null,
new_pv number(17,6) default 0 not null,
new_team_pv number(17,6) default 0 not null,
dept_new_team_pv number(17,6) default 0 not null,
effective_num number(8) default 0 not null,
ev_effective_num number(8) default 0 not null,
provide_state number(1) default 1 not null,
buy_effective_num number(8) default 0 not null,
first_agent number(4) default 0 not null,
second_agent number(4) default 0 not null,
recommend_num number(8) default 0 not null,
team_num number(8) 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,
dept_team_consume_amount number(17,6) default 0 not null,
dept_team_consume_pv number(17,6) default 0 not null,
dept_team_month_amount number(17,6) default 0 not null,
dept_team_month_pv number(17,6) default 0 not null,
small_area_pv number(17,6) default 0 not null,
assess_status number(2) default 3 not null,
month_member number(1) default 1 not null,
range_store_status number(1) default 0 not null
)
</update>
<update id="createCuMemberRangeSecondTable">
create table ${tableName}
(
pk_member NUMBER(20) not null,
pk_parent NUMBER(20) not null,
pk_range_awards number(4) default 1 not null,
buy_effective_num number(8) default 0 not null,
first_agent number(4) default 0 not null,
second_agent number(4) default 0 not null,
new_pv number(17,6) default 0 not null,
new_effective_num number(8) default 0 not null,
new_team_pv number(17,6) default 0 not null,
dept_new_team_pv number(17,6) default 0 not null,
assess_status number(2) default 3 not null,
consume_status number(2) default 1 not null,
month_member number(1) default 1 not null
)
</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="updateCuMemberRangeAwardsInit">
merge into ${rangeTableName} a
using(
select ct.pk_member,ba.pk_id pk_awards from ${rangeTableName} ct
inner join bd_awards ba
on ct.pk_settle_country = ba.pk_country
where ba.awards_value=0 and ba.del_flag=0) b
on (a.pk_member=b.pk_member)
when matched then
update set a.pk_benefit_awards=b.pk_awards
</update>
<update id="updateCuMemberRangeAwardsBySettle">
merge into ${rangeTableName} a
using (
select pk_member,max(pk_awards) pk_awards from cu_member_settle_awards
where period between #{startPeriod} and #{period}
group by pk_member
) b
on (a.pk_member=b.pk_member)
when matched then
update set a.pk_benefit_awards=b.pk_awards
</update>
<update id="updateMemberRangeAwardsInit">
merge into cu_member a
using(
select ct.pk_id,ba.pk_id pk_awards from cu_member ct
inner join bd_awards ba
on ct.pk_settle_country = ba.pk_country
where ba.awards_value=0 and ba.del_flag=0 and ct.system_type=1) b
on (a.pk_id=b.pk_id)
when matched then
update set a.pk_benefit_awards=b.pk_awards,a.pk_max_awards=b.pk_awards
</update>
<update id="updateMemberRangeAwardsBySettle">
merge into cu_member a
using (
select ca.pk_member,max(ca.pk_awards) pk_awards from cu_member_settle_awards ca
inner join cu_member cm
on cm.pk_id=ca.pk_member
where cm.system_type= 1 and period between #{startPeriod} and #{period}
group by ca.pk_member
) b
on (a.pk_id=b.pk_member)
when matched then
update set a.pk_benefit_awards=b.pk_awards
</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>
2025-03-23 09:44:16 +08:00
<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>
<delete id="deleteCuMemberTreeByPeriod">
delete from ${targetTableName} where period=#{period}
</delete>
<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="queryCuMemberTreeExt" resultType="com.hzs.common.domain.member.ext.CuMemberSettleExt">
select ct.* from ${settleTableName} ct
inner join(
select t.pk_member
from ${settleTableName} t
start with t.pk_member = #{pkMember}
connect by t.pk_member = prior t.pk_place_parent) tmp
on ct.pk_member = tmp.pk_member
</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 &lt;= a.a_sum_real_pv
and bw.community_check &lt;= 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) 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) 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="queryExemptCuMemberSettle" resultMap="CuMemberSettleExt">
select pk_member,0 assess_type from ${tableName}
where purchase_status= 0
union
select pk_member,1 assess_type from ${tableName}
where share_status= 0
</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="batchQuerySpecialCuMemberSettleParent" resultMap="CuMemberSettleExt">
select a.*,(case when nvl(so.order_achieve,0)>0 then 0 else 1 end ) is_pay_reg from (
<include refid="memberParent"></include>) a
left join (select pk_member,max(order_achieve) order_achieve from sa_order
where del_flag = 0 and order_status = 1
and order_type=24
group by pk_member) so
on so.pk_member=a.pk_member
</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="queryCuMemberSecondPlaceParent" resultMap="CuMemberSettleExt">
select b.pk_id pk_member,b.pk_parent,b.pk_place_parent,b.place_dept,b.pk_center_code,b.member_code,b.member_name,b.pk_grade,b.pk_awards,b.account_status,
b.register_authority,b.customer_type,b.income_status,b.pk_settle_country,b.is_maker_space,b.purchase_status,
b.share_status,bg.grade_value,b.category,st.a_balance,st.b_balance,0 r_a_balance,0 r_b_balance,
st.a_sum_amount,st.b_sum_amount,st.a_sum_pv,st.b_sum_pv,st.a_new_amount,st.b_new_amount,st.a_new_pv,
st.b_new_pv,st.a_sum_real_amount,st.b_sum_real_amount,st.a_sum_real_pv,
st.b_sum_real_pv,st.rep_a_balance,st.rep_b_balance,0 r_rep_a_balance,0 r_rep_b_balance,st.rep_a_new_amount,
st.rep_b_new_amount,st.rep_a_new_pv,st.rep_b_new_pv,st.rep_a_sum_amount,
st.rep_b_sum_amount,st.rep_a_sum_pv,st.rep_b_sum_pv,
st.register_amount,st.register_pv,st.register_new_amount,st.register_new_pv,
st.upgrade_amount,st.upgrade_pv,st.upgrade_new_amount,st.upgrade_new_pv,
st.repurchase_amount,st.repurchase_pv,st.repurchase_new_amount,st.repurchase_new_pv,
st.hi_fun_amount,st.hi_fun_pv,st.hi_fun_new_amount,st.hi_fun_new_pv,
st.mall_amount,st.mall_pv,st.mall_new_amount,st.mall_new_pv,
st.round,st.second,st.min_achieve,st.expire_status from ${secondTableName} st
inner join
(select pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name,pk_center_code,pk_settle_grade pk_grade,pk_awards,account_status,register_authority,customer_type,
income_status,pk_settle_country,purchase_status,share_status,category,is_maker_space,0 orders from cu_member
where del_flag = 0 start with pk_id = #{pkMember}
connect by pk_id = prior pk_place_parent
) b
on b.pk_id = st.pk_member
left join bd_grade bg
on b.pk_grade = bg.pk_id
order by b.orders
</select>
<select id="queryCuMemberSecondBloParent" resultMap="CuMemberSettleExt">
select b.pk_id pk_member,b.pk_parent,b.pk_place_parent,b.place_dept,b.pk_center_code,b.member_code,b.member_name,b.pk_grade,b.pk_awards,b.account_status,
b.register_authority,b.customer_type,b.income_status,b.pk_settle_country,b.is_maker_space,b.purchase_status,
b.share_status,bg.grade_value,b.category,st.a_balance,st.b_balance,0 r_a_balance,0 r_b_balance,
st.a_sum_amount,st.b_sum_amount,st.a_sum_pv,st.b_sum_pv,st.a_new_amount,st.b_new_amount,st.a_new_pv,
st.b_new_pv,st.a_sum_real_amount,st.b_sum_real_amount,st.a_sum_real_pv,
st.b_sum_real_pv,st.rep_a_balance,st.rep_b_balance,0 r_rep_a_balance,0 r_rep_b_balance,st.rep_a_new_amount,
st.rep_b_new_amount,st.rep_a_new_pv,st.rep_b_new_pv,st.rep_a_sum_amount,
st.rep_b_sum_amount,st.rep_a_sum_pv,st.rep_b_sum_pv,
st.register_amount,st.register_pv,st.register_new_amount,st.register_new_pv,
st.upgrade_amount,st.upgrade_pv,st.upgrade_new_amount,st.upgrade_new_pv,
st.repurchase_amount,st.repurchase_pv,st.repurchase_new_amount,st.repurchase_new_pv,
st.hi_fun_amount,st.hi_fun_pv,st.hi_fun_new_amount,st.hi_fun_new_pv,
st.mall_amount,st.mall_pv,st.mall_new_amount,st.mall_new_pv,
st.round,st.second,st.min_achieve,st.expire_status from ${secondTableName} st
inner join
(select pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name,pk_center_code,pk_settle_grade pk_grade,pk_awards,account_status,register_authority,customer_type,
income_status,pk_settle_country,purchase_status,share_status,category,is_maker_space,0 orders from cu_member
where del_flag = 0 start with pk_id = #{pkMember}
connect by pk_id = prior pk_parent
) b
on b.pk_id = st.pk_member
left join bd_grade bg
on b.pk_grade = bg.pk_id
order by b.orders
</select>
<select id="queryCuMemberSecondParent" resultMap="CuMemberSettleExt">
select b.pk_id pk_member,b.pk_parent,b.pk_place_parent,b.place_dept,b.pk_center_code,b.member_code,b.member_name,b.pk_grade,b.pk_awards,b.account_status,
b.register_authority,b.customer_type,b.income_status,b.pk_settle_country,b.is_maker_space,b.purchase_status,
b.share_status,bg.grade_value,b.category,st.a_balance,st.b_balance,0 r_a_balance,0 r_b_balance,
st.a_sum_amount,st.b_sum_amount,st.a_sum_pv,st.b_sum_pv,st.a_new_amount,st.b_new_amount,st.a_new_pv,
st.b_new_pv,st.a_sum_real_amount,st.b_sum_real_amount,st.a_sum_real_pv,
st.b_sum_real_pv,st.rep_a_balance,st.rep_b_balance,0 r_rep_a_balance,0 r_rep_b_balance,st.rep_a_new_amount,
st.rep_b_new_amount,st.rep_a_new_pv,st.rep_b_new_pv,st.rep_a_sum_amount,
st.rep_b_sum_amount,st.rep_a_sum_pv,st.rep_b_sum_pv,
st.register_amount,st.register_pv,st.register_new_amount,st.register_new_pv,
st.upgrade_amount,st.upgrade_pv,st.upgrade_new_amount,st.upgrade_new_pv,
st.repurchase_amount,st.repurchase_pv,st.repurchase_new_amount,st.repurchase_new_pv,
st.hi_fun_amount,st.hi_fun_pv,st.hi_fun_new_amount,st.hi_fun_new_pv,
st.mall_amount,st.mall_pv,st.mall_new_amount,st.mall_new_pv,
st.round,st.second,st.min_achieve,st.expire_status from
(
select pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name,pk_center_code,pk_settle_grade pk_grade,pk_awards,account_status,register_authority,customer_type,
income_status,pk_settle_country,purchase_status,share_status,category,is_maker_space from cu_member
where del_flag= 0 and pk_id in
<foreach collection="cuMemberTreeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
) b
inner join ${secondTableName} st
on b.pk_id = st.pk_member
left join bd_grade bg
on b.pk_grade = bg.pk_id
</select>
<select id="queryCuMemberTreePlaceParentTable" resultMap="CuMemberSettleExt">
select t.*,cm.PK_PLACE_PARENT,cm.PK_PARENT, level,cm.PLACE_DEPT
from ${tableName} t
left join CU_MEMBER cm on cm.PK_ID = t.PK_MEMBER
where level &lt; #{level}
and cm.DEL_FLAG = 0
<if test="memberIdList.size() > 0 and memberIdList != ''">
and cm.PK_ID in
<foreach collection="memberIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
start with cm.PK_PLACE_PARENT = #{pkMember}
connect by cm.PK_PLACE_PARENT = prior t.pk_member
order by cm.PLACE_DEPT ASC
</select>
<select id="queryCuMemberTreeByPkMemberTable" resultMap="CuMemberSettleExt">
select
<if test="tableName != null and tableName != ''">
t.PK_RATE,t.A_BALANCE,t.B_BALANCE,t.A_SUM_AMOUNT,t.B_SUM_AMOUNT,t.A_SUM_PV,t.B_SUM_PV,t.A_NEW_AMOUNT,
t.B_NEW_AMOUNT,t.A_NEW_PV,t.B_NEW_PV,t.A_SUM_REAL_AMOUNT,t.B_SUM_REAL_AMOUNT,t.A_SUM_REAL_PV,t.B_SUM_REAL_PV,
t.REP_A_BALANCE,t.REP_B_BALANCE,t.REP_A_NEW_AMOUNT,t.REP_B_NEW_AMOUNT,t.REP_A_NEW_PV,t.REP_B_NEW_PV,t.REP_A_SUM_AMOUNT,
t.REP_B_SUM_AMOUNT,t.REP_A_SUM_PV,t.REP_B_SUM_PV,t.REGISTER_AMOUNT,t.REGISTER_PV,t.REGISTER_NEW_PV,t.UPGRADE_AMOUNT,t.UPGRADE_PV,
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,
</if>
cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode,
(select count(cr.pk_id) from CU_MEMBER cr where cr.pk_parent = cm.pk_id and cr.del_flag = 0) directPushNumber
from
CU_MEMBER cm
left join CU_MEMBER cme on cme.PK_ID = cm.PK_PLACE_PARENT
<if test="tableName != null and tableName != ''">
left join ${tableName} t on cm.PK_ID = t.PK_MEMBER
</if>
where cm.PK_ID = #{pkMember}
and cm.DEL_FLAG = 0
</select>
<select id="queryCuMemberTreeParentTable" resultMap="CuMemberSettleExt" >
select
<if test="tableName != null and tableName != ''">
t.PK_RATE,
t.A_BALANCE,
t.B_BALANCE,
t.A_SUM_AMOUNT,
t.B_SUM_AMOUNT,
t.A_SUM_PV,
t.B_SUM_PV,
t.A_NEW_AMOUNT,
t.B_NEW_AMOUNT,
t.A_NEW_PV,
t.B_NEW_PV,
t.A_SUM_REAL_AMOUNT,
t.B_SUM_REAL_AMOUNT,
t.A_SUM_REAL_PV,
t.B_SUM_REAL_PV,
t.REP_A_BALANCE,
t.REP_B_BALANCE,
t.REP_A_NEW_AMOUNT,
t.REP_B_NEW_AMOUNT,
t.REP_A_NEW_PV,
t.REP_B_NEW_PV,
t.REP_A_SUM_AMOUNT,
t.REP_B_SUM_AMOUNT,
t.REP_A_SUM_PV,
t.REP_B_SUM_PV,
t.REGISTER_AMOUNT,
t.REGISTER_PV,
t.REGISTER_NEW_PV,
t.UPGRADE_AMOUNT,
t.UPGRADE_PV,
t.UPGRADE_NEW_PV,
t.REPURCHASE_AMOUNT,
t.REPURCHASE_PV,
t.REPURCHASE_NEW_PV,
t.HI_FUN_AMOUNT,
t.HI_FUN_PV,
t.HI_FUN_NEW_PV,
t.MALL_AMOUNT,
t.MALL_PV,
t.MALL_NEW_PV,
t.MIN_ACHIEVE,
t.ROUND,
t.SECOND,
</if>
cm.*, cme.MEMBER_CODE parentMemberCode from ( select
level,cm.PK_ID,
cm.PK_COUNTRY,
cm.PK_PLACE_PARENT,
cm.PK_PARENT,
cm.PLACE_DEPT,
cm.MEMBER_NAME,
cm.MEMBER_CODE,
cm.PK_ID PK_MEMBER,
cm.PK_SETTLE_COUNTRY
from CU_MEMBER cm
where 1 = 1
<if test="level != null">
and level &lt; #{level}
</if>
and cm.del_flag = 0
start with cm.PK_PARENT = #{pkMember}
connect by cm.PK_PARENT = prior cm.pk_id
order by cm.Place_Dept ASC ) cm
left join CU_MEMBER cme
on cme.PK_ID = cm.PK_PARENT
<if test="tableName != null and tableName != ''">
left join ${tableName} t
on cm.PK_ID = t.PK_MEMBER
</if>
</select>
<select id="queryCuMemberTreeParentTableCount" resultType="long" >
select count(PK_MEMBER) from ${tableName} t
left join CU_MEMBER cm on cm.pk_id = t.PK_MEMBER where cm.PK_PARENT = #{pkMember}
</select>
<select id="queryCuMemberTreePlaceParentHistoryTable" resultMap="CuMemberSettleExt">
select
<if test="tableName != null and tableName != ''">
t.PK_RATE,t.A_BALANCE,t.B_BALANCE,t.A_SUM_AMOUNT,t.B_SUM_AMOUNT,t.A_SUM_PV,t.B_SUM_PV,t.A_NEW_AMOUNT,
t.B_NEW_AMOUNT,t.A_NEW_PV,t.B_NEW_PV,t.A_SUM_REAL_AMOUNT,t.B_SUM_REAL_AMOUNT,t.A_SUM_REAL_PV,t.B_SUM_REAL_PV,
t.REP_A_BALANCE,t.REP_B_BALANCE,t.REP_A_NEW_AMOUNT,t.REP_B_NEW_AMOUNT,t.REP_A_NEW_PV,t.REP_B_NEW_PV,t.REP_A_SUM_AMOUNT,
t.REP_B_SUM_AMOUNT,t.REP_A_SUM_PV,t.REP_B_SUM_PV,t.REGISTER_AMOUNT,t.REGISTER_PV,t.REGISTER_NEW_PV,t.UPGRADE_AMOUNT,t.UPGRADE_PV,
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,
</if>
level,cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode
from CU_MEMBER cm
<if test="tableName != null and tableName != ''">
left join ${tableName} t on cm.PK_ID = t.PK_MEMBER
</if>
left join CU_MEMBER cme on cme.PK_ID = cm.PK_PLACE_PARENT
where level &lt; #{level}
<if test="memberIdList.size() > 0 and memberIdList != ''">
and cm.PK_ID in
<foreach collection="memberIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
start with cm.PK_PLACE_PARENT = #{pkMember}
connect by cm.PK_PLACE_PARENT = prior cm.pk_id
order by cm.Place_Dept ASC
</select>
<select id="queryCuMemberTreeParentSumTable" resultType="com.hzs.bonus.census.vo.CensusSummaryVo">
select
nvl(sum(REGISTER_NEW_AMOUNT + UPGRADE_NEW_AMOUNT),0) firstBuyAmount ,
nvl(sum(UPGRADE_NEW_AMOUNT),0) upgradeAmount,
nvl(sum(REPURCHASE_NEW_AMOUNT),0) repurchaseAmount,
nvl(sum(HI_FUN_NEW_AMOUNT),0) fansAmount,
nvl(sum(REGISTER_NEW_PV+UPGRADE_NEW_PV),0) firstBuyAmountPv,
nvl(sum(UPGRADE_NEW_PV),0) upgradePv,
nvl(sum(REPURCHASE_NEW_PV),0) repurchasePv,
nvl(sum(HI_FUN_NEW_PV),0) hiFunAmountPv
from ${tableName} t
left join cu_member cm on cm.pk_id = t.PK_MEMBER
<if test="censusSummaryParam.pkVertex != null and censusSummaryParam.pkVertex.size() > 0">
and cm.PK_VERTEX in
<foreach collection="censusSummaryParam.pkVertex" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="censusSummaryParam.pkMemberTeam != null and censusSummaryParam.pkMemberTeam.size() > 0">
and cm.PK_TEAM_CODE in
<foreach collection="censusSummaryParam.pkMemberTeam" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
<select id="queryCuMemberTreeLastPlaceParent" resultMap="CuMemberSettleExt">
select cu.place_dept, cu.pk_member,cu.member_code, cu.member_name, cu.phone,cu.category,cu.pk_grade,
bg.grade_value from(
select *
from (select t.place_dept, t.pk_member,t.member_name,t.member_code, t.phone,t.category,t.pk_grade
from ${tableName} t
where t.place_dept = 1
start with t.pk_member = (select u.pk_member
from ${tableName} u
where u.pk_place_parent=#{pkMember}
and place_dept = 1)
connect by prior
t.pk_member = (select u.pk_place_parent
from ${tableName} u
where u.pk_member = t.pk_member
and u.place_dept = 1)
order by level desc) n
where rownum = 1
union
select *
from (
select t.place_dept, t.pk_member,t.member_name,t.member_code, t.phone,t.category,t.pk_grade
from ${tableName} t
where t.place_dept = 2
start with t.pk_member = (select u.pk_member
from ${tableName} u
where u.pk_place_parent=#{pkMember}
and place_dept = 2)
connect by prior
t.pk_member = (select u.pk_place_parent
from ${tableName} u
where u.pk_member = t.pk_member
and u.place_dept = 2)
order by level desc) n
where rownum = 1)cu
left join bd_grade bg
on cu.pk_grade = bg.pk_id
</select>
<select id="queryCuMemberTree" resultMap="CuMemberSettleExt">
select t.place_dept, t.pk_member, t.member_name,t.member_code, t.phone,t.category,t.pk_grade,bg.grade_value from ${tableName} t
left join bd_grade bg
on bg.pk_id = t.pk_grade
where 1=1
<if test="pkMember != null">
and pk_member = #{pkMember}
</if>
<if test="pkPlaceParent != null">
and pk_place_parent=#{pkPlaceParent}
</if>
</select>
<select id="selectByTreeMemberList" resultMap="CuMemberSettleExt">
select t.PK_RATE,t.A_BALANCE,t.B_BALANCE,t.A_SUM_AMOUNT,t.B_SUM_AMOUNT,t.A_SUM_PV,t.B_SUM_PV,t.A_NEW_AMOUNT,
t.B_NEW_AMOUNT,t.A_NEW_PV,t.B_NEW_PV,t.A_SUM_REAL_AMOUNT,t.B_SUM_REAL_AMOUNT,t.A_SUM_REAL_PV,t.B_SUM_REAL_PV,
t.REP_A_BALANCE,t.REP_B_BALANCE,t.REP_A_NEW_AMOUNT,t.REP_B_NEW_AMOUNT,t.REP_A_NEW_PV,t.REP_B_NEW_PV,t.REP_A_SUM_AMOUNT,
t.REP_B_SUM_AMOUNT,t.REP_A_SUM_PV,t.REP_B_SUM_PV,t.REGISTER_AMOUNT,t.REGISTER_PV,t.REGISTER_NEW_PV,t.UPGRADE_AMOUNT,t.UPGRADE_PV,
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,level,cm.PK_AWARDS,cm.PK_SETTLE_COUNTRY,
cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cme.MEMBER_CODE parentMemberCode
from CU_MEMBER cm
left join CU_MEMBER cme on cme.PK_ID = cm.PK_PLACE_PARENT
left join ${tableName} t on cm.PK_ID = t.PK_MEMBER
where level &lt; #{level} and cm.del_flag = 0
start
with cm.PK_PLACE_PARENT = #{pkMember}
connect by cm.PK_PLACE_PARENT = prior cm.PK_ID
order by cm.PLACE_DEPT
</select>
<select id="getCuMemberRealPerformanceByMemberId" resultType="com.hzs.common.domain.member.ext.CuMemberSettleExt" >
select t.*
from ${tableName} t
where t.PK_MEMBER = #{pkMember}
</select>
<select id="queryPlaceParentPeopleNumber" resultType="long">
select count(t.PK_ID)
from CU_MEMBER t
where t.PLACE_DEPT = #{placeDept}
start with t.PK_PLACE_PARENT = #{memberId}
connect by t.PK_PLACE_PARENT = prior t.PK_ID
order by level
</select>
<select id="queryParentPeopleNumber" resultType="long">
select count(t.PK_ID)
from CU_MEMBER t
where t.PLACE_DEPT = #{placeDept}
start with t.PK_PARENT = #{memberId}
connect by t.PK_PARENT = prior t.PK_ID
order by level
</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="selectByselectByTreeMemberCount" resultType="long">
select count(PK_MEMBER) from ${tableName} where pk_member = #{pkMember}
</select>
<select id="brollyBelowResettle" resultMap="CuMemberSettleExt" >
select t.*,cm.PK_PLACE_PARENT,cm.PK_PARENT, level,cm.PLACE_DEPT
from ${tableName} t
left join CU_MEMBER cm on cm.PK_ID = t.PK_MEMBER
where
cm.DEL_FLAG = 0
start with cm.PK_PLACE_PARENT = #{pkMember}
connect by cm.PK_PLACE_PARENT = prior t.pk_member
order by cm.PLACE_DEPT ASC
</select>
<select id="queryCuMemberTreeByPlacePkMemberTable" resultMap="CuMemberSettleExt">
select
<if test="tableName != null and tableName != ''">
t.PK_RATE,t.A_BALANCE,t.B_BALANCE,t.A_SUM_AMOUNT,t.B_SUM_AMOUNT,t.A_SUM_PV,t.B_SUM_PV,t.A_NEW_AMOUNT,
t.B_NEW_AMOUNT,t.A_NEW_PV,t.B_NEW_PV,t.A_SUM_REAL_AMOUNT,t.B_SUM_REAL_AMOUNT,t.A_SUM_REAL_PV,t.B_SUM_REAL_PV,
t.REP_A_BALANCE,t.REP_B_BALANCE,t.REP_A_NEW_AMOUNT,t.REP_B_NEW_AMOUNT,t.REP_A_NEW_PV,t.REP_B_NEW_PV,t.REP_A_SUM_AMOUNT,
t.REP_B_SUM_AMOUNT,t.REP_A_SUM_PV,t.REP_B_SUM_PV,t.REGISTER_AMOUNT,t.REGISTER_PV,t.REGISTER_NEW_PV,t.UPGRADE_AMOUNT,t.UPGRADE_PV,
t.UPGRADE_NEW_PV,t.REPURCHASE_AMOUNT,t.REPURCHASE_PV,t.REPURCHASE_NEW_PV,t.HI_FUN_AMOUNT,t.HI_FUN_PV,t.HI_FUN_NEW_PV,t.MALL_AMOUNT,
t.MALL_PV ,t.MALL_NEW_PV,t.MIN_ACHIEVE,t.ROUND,t.SECOND,
</if>
cm.PK_AWARDS,cm.PK_PLACE_PARENT,cm.PK_PARENT ,cm.PLACE_DEPT ,cm.MEMBER_NAME, cm.MEMBER_CODE,cm.PK_ID PK_MEMBER,cm.PK_COUNTRY,cm.PK_SETTLE_COUNTRY,cme.MEMBER_CODE parentMemberCode
from
CU_MEMBER cm
left join CU_MEMBER cme on cme.PK_ID = cm.PK_PARENT
<if test="tableName != null and tableName != ''">
left join ${tableName} t on cm.PK_ID = t.PK_MEMBER
</if>
where cm.PK_ID = #{pkMember}
and cm.DEL_FLAG = 0
</select>
<select id="queryByMemberParentCount" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
select count(cr.pk_id) parentMemberCount,cr.PK_PARENT pkMember from CU_MEMBER cr where cr.PK_PARENT in
<trim suffixOverrides=" OR PK_ID IN()"> <!-- 表示删除最后一个条件 -->
<foreach collection="memberIds" item="Id" index="index" open="(" close=")">
<if test="index != 0">
<choose>
<when test="index % 1000 == 999">) OR cr.PK_PARENT IN (</when>
<otherwise>,</otherwise>
</choose>
</if>
#{Id}
</foreach>
</trim>
and cr.del_flag = 0
group by cr.PK_PARENT
</select>
<select id="queryByMemberParentSumPv" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
select sum(cr.REGISTER_PV + cr.UPGRADE_PV + cr.REPURCHASE_PV + cr.HI_FUN_PV + cr.MALL_PV) parentMemberSumPv,cm.PK_PARENT pkMember from ${tableName} cr
left join CU_MEMBER cm on cm.PK_ID = cr.PK_MEMBER
where cm.del_flag = 0 and cm.PK_PARENT in
<foreach collection="memberIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
group by cm.PK_PARENT
</select>
<select id="queryByMemberParentAndMemberSettleCount" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
select count(cr.PK_MEMBER) parentMemberCount,cr.PK_PARENT pkMember from cu_member_settle981 cr where cr.PK_PARENT in
<trim suffixOverrides=" OR PK_ID IN()"> <!-- 表示删除最后一个条件 -->
<foreach collection="memberIds" item="Id" index="index" open="(" close=")">
<if test="index != 0">
<choose>
<when test="index % 1000 == 999">) OR cr.PK_PARENT IN (</when>
<otherwise>,</otherwise>
</choose>
</if>
#{Id}
</foreach>
</trim>
group by cr.PK_PARENT
</select>
<select id="queryByMemberParentSettleSumPv" resultType="com.hzs.bonus.achieve.param.MemberParentCountParam">
select sum(cr.REGISTER_PV + cr.UPGRADE_PV + cr.REPURCHASE_PV + cr.HI_FUN_PV + cr.MALL_PV) parentMemberSumPv,cr.PK_PARENT pkMember from ${tableName} cr
where cr.PK_PARENT in
<foreach collection="memberIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
group by cr.PK_PARENT
</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>