java-base-app/bd-business/bd-business-member/src/main/resources/mapper/member/account/CuMemberAccountMapper.xml

1243 lines
48 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.member.account.mapper.CuMemberAccountMapper">
<!-- 通用查询映射结果 -->
<resultMap id="AccountExResultMap" type="com.hzs.common.domain.member.ext.CuMemberAccountExt">
<id column="PK_ID" property="pkId"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="ACCOUNT1" property="account1"/>
<result column="LOCK_ACCOUNT1" property="lockAccount1"/>
<result column="LOCK_TRANSFER_ACCOUNT1" property="lockTransferAccount1"/>
<result column="ACCOUNT1_REMARKS" property="account1Remarks"/>
<result column="ACCOUNT2" property="account2"/>
<result column="LOCK_ACCOUNT2" property="lockAccount2"/>
<result column="LOCK_TRANSFER_ACCOUNT2" property="lockTransferAccount2"/>
<result column="ACCOUNT2_REMARKS" property="account2Remarks"/>
<result column="ACCOUNT3" property="account3"/>
<result column="LOCK_ACCOUNT3" property="lockAccount3"/>
<result column="LOCK_TRANSFER_ACCOUNT3" property="lockTransferAccount3"/>
<result column="ACCOUNT3_REMARKS" property="account3Remarks"/>
<result column="ACCOUNT4" property="account4"/>
<result column="LOCK_ACCOUNT4" property="lockAccount4"/>
<result column="LOCK_TRANSFER_ACCOUNT4" property="lockTransferAccount4"/>
<result column="LOCK_WITHDRAW_ACCOUNT4" property="lockWithdrawAccount4"/>
<result column="WITHDRAW_ACCOUNT4" property="withdrawAccount4"/>
<result column="CONSUME_ACCOUNT4" property="consumeAccount4"/>
<result column="ACCOUNT4_REMARKS" property="account4Remarks"/>
<result column="ACCOUNT5" property="account5"/>
<result column="LOCK_ACCOUNT5" property="lockAccount5"/>
<result column="LOCK_TRANSFER_ACCOUNT5" property="lockTransferAccount5"/>
<result column="ACCOUNT5_REMARKS" property="account5Remarks"/>
<result column="ACCOUNT6" property="account6"/>
<result column="LOCK_ACCOUNT6" property="lockAccount6"/>
<result column="LOCK_TRANSFER_ACCOUNT6" property="lockTransferAccount6"/>
<result column="ACCOUNT6_REMARKS" property="account6Remarks"/>
<result column="ACCOUNT7" property="account7"/>
<result column="LOCK_ACCOUNT7" property="lockAccount7"/>
<result column="LOCK_TRANSFER_ACCOUNT7" property="lockTransferAccount7"/>
<result column="ACCOUNT7_REMARKS" property="account7Remarks"/>
<result column="ACCOUNT8" property="account8"/>
<result column="LOCK_ACCOUNT8" property="lockAccount8"/>
<result column="LOCK_TRANSFER_ACCOUNT8" property="lockTransferAccount8"/>
<result column="ACCOUNT8_REMARKS" property="account8Remarks"/>
<result column="ACCOUNT9" property="account9"/>
<result column="LOCK_ACCOUNT9" property="lockAccount9"/>
<result column="LOCK_TRANSFER_ACCOUNT9" property="lockTransferAccount9"/>
<result column="ACCOUNT9_REMARKS" property="account9Remarks"/>
<result column="ACCOUNT10" property="account10"/>
<result column="LOCK_ACCOUNT10" property="lockAccount10"/>
<result column="LOCK_TRANSFER_ACCOUNT10" property="lockTransferAccount10"/>
<result column="ACCOUNT10_REMARKS" property="account10Remarks"/>
<result column="ACCOUNT11" property="account11"/>
<result column="ACCOUNT12" property="account12"/>
<result column="ACCOUNT13" property="account13"/>
<result column="ACCOUNT13" property="account13"/>
<result column="LOCK_ACCOUNT13" property="lockAccount13"/>
<result column="ACCOUNT14" property="account14"/>
<result column="ACCOUNT15" property="account15"/>
<result column="ACCOUNT16" property="account16"/>
<result column="ACCOUNT17" property="account17"/>
<result column="ACCOUNT18" property="account18"/>
<result column="ACCOUNT19" property="account19"/>
<result column="ACCOUNT20" property="account20"/>
<result column="TRANSFER_STATUS" property="transferStatus"/>
<result column="IS_TRANSFER" property="isTransfer"/>
<result column="IS_WITHDRAW" property="isWithdraw"/>
<result column="IS_CONSUME" property="isConsume"/>
<result column="PAY_PWD" property="payPwd"/>
<result column="ACCOUNT_STATUS" property="accountStatus"/>
<result column="PK_COUNTRY" property="pkCountry"/>
</resultMap>
<update id="deleteCuMemberAccountByMemberCode">
update cu_member_account cma
set cma.del_flag = 1,cma.PK_MODIFIED = #{userId},cma.MODIFIED_TIME = #{date}
where cma.pk_member in
(select cm.pk_id
from cu_member cm
where cm.member_code = #{memberCode})
</update>
<select id="queryMemberAccountByCondition" resultMap="AccountExResultMap">
select cm.pay_pwd,
cm.account_status,
ca.pk_member,
ca.account1,
ca.lock_account1,
ca.account2,
ca.lock_account2,
ca.lock_account3,
ca.account3,
ca.lock_account4,
ca.account4,
ca.consume_account4,
ca.withdraw_account4,
ca.lock_account4,
ca.account5,
ca.lock_account5,
ca.account6,
ca.lock_account6,
ca.account7,
ca.lock_account7,
ca.account8,
ca.lock_account8,
ca.account9,
ca.account10,
ca.account11,
ca.account12,
ca.account13,
ca.account14,
ca.account15,
ca.lock_account13,
ca.is_transfer,
ca.is_withdraw,
ca.is_consume,
cm.pk_settle_country pk_country
from cu_member cm
inner join cu_member_account ca
on cm.pk_id = ca.pk_member
where cm.del_flag=0 and ca.del_flag=0
and cm.category =0
and cm.pk_settle_country=#{pkCountry}
<if test="pkMember != null and pkMember != ''">
and ca.pk_member = #{pkMember}
</if>
</select>
<!-- 根据会员编码获取会员账户余额 -->
<select id="selectBalanceByMemberCode" resultType="decimal">
SELECT CASE
WHEN 1 = #{accountType} then account1
WHEN 2 = #{accountType} then account2
WHEN 3 = #{accountType} then account3
WHEN 4 = #{accountType} then account4
WHEN 5 = #{accountType} then account5
WHEN 6 = #{accountType} then account6
WHEN 7 = #{accountType} then account7
WHEN 8 = #{accountType} then account8
WHEN 9 = #{accountType} then account9
WHEN 10 = #{accountType} then account10
WHEN 11 = #{accountType} then account11
WHEN 12 = #{accountType} then account12
WHEN 13 = #{accountType} then account13
WHEN 14 = #{accountType} then account14
WHEN 15 = #{accountType} then account15
WHEN 16 = #{accountType} then account16
WHEN 17 = #{accountType} then account17
WHEN 18 = #{accountType} then account18
WHEN 19 = #{accountType} then account19
WHEN 20 = #{accountType} then account20
END balance
FROM CU_MEMBER_ACCOUNT
WHERE pk_member = #{pkMember}
</select>
<update id="updateMemberAccount">
UPDATE CU_MEMBER_ACCOUNT
SET
<if test="account1 != null">
account1 = account1 + #{account1},
</if>
<if test="account2 != null">
account2 = account2 + #{account2},
</if>
<if test="account3 != null">
account3 = account3 + #{account3},
</if>
<if test="account4 != null">
account4 = account4 + #{account4},
</if>
<if test="account5 != null">
account5 = account5 + #{account5},
</if>
<if test="account6 != null">
account6 = account6 + #{account6},
</if>
<if test="account7 != null">
account7 = account7 + #{account7},
</if>
<if test="account8 != null">
account8 = account8 + #{account8},
</if>
<if test="account9 != null">
account9 = account9 + #{account9},
</if>
<if test="account10 != null">
account10 = account10 + #{account10},
</if>
<if test="account11 != null">
account11 = account11 + #{account11},
</if>
<if test="account12 != null">
account12 = account12 + #{account12},
</if>
<if test="account13 != null">
account13 = account13 + #{account13},
</if>
<if test="account14 != null">
account14 = account14 + #{account14},
</if>
<if test="account15 != null">
account15 = account15 + #{account15},
</if>
<if test="account16 != null">
account16 = account16 + #{account16},
</if>
<if test="account17 != null">
account17 = account17 + #{account17},
</if>
<if test="account18 != null">
account18 = account18 + #{account18},
</if>
<if test="account19 != null">
account19 = account19 + #{account19},
</if>
<if test="account20 != null">
account20 = account20 + #{account20},
</if>
<if test="lockAccount1 != null">
lock_account1 = #{lockAccount1},
</if>
<if test="lockAccount2 != null">
lock_account2 = #{lockAccount2},
</if>
<if test="lockAccount4 != null">
lock_account4 = #{lockAccount4},
</if>
<if test="withdrawAccount4 != null">
withdraw_account4 = withdraw_account4 + #{withdrawAccount4},
</if>
<if test="consumeAccount4 != null">
consume_account4 = consume_account4 + #{consumeAccount4},
</if>
<if test="lockAccount13 != null">
lock_account13 = #{lockAccount13},
</if>
pk_modified = #{pkModified},
modified_time = sysdate
WHERE pk_member = #{pkMember} and pk_country = #{pkCountry} and del_flag=0
<if test="account2 != null">
and account2 + #{account2} >= 0
</if>
<if test="account4 != null">
and account4 + #{account4} >= 0
</if>
</update>
<select id="queryMemberAccountByMemberCode" resultType="com.hzs.member.account.dto.CuMemberRechargeAccountParam">
select pk_id, pk_member, account_name, decode(account_name, 'ACCOUNT4',
WITHDRAW_ACCOUNT4-lock_withdraw_account4, 0) withdrawBalance,
case
when account_name = 'ACCOUNT1' then
balance - lock_account1 - lock_transfer_account1
when account_name = 'ACCOUNT2' then
balance - lock_account2 - lock_transfer_account2
when account_name = 'ACCOUNT3' then
balance - lock_account3 - lock_transfer_account3
when account_name = 'ACCOUNT4' then
balance - lock_account4 - lock_transfer_account4 -
lock_withdraw_account4
when account_name = 'ACCOUNT5' then
balance - lock_account5 - lock_transfer_account5
when account_name = 'ACCOUNT6' then
balance - lock_account6 - lock_transfer_account6
when account_name = 'ACCOUNT7' then
balance - lock_account7 - lock_transfer_account7
when account_name = 'ACCOUNT8' then
balance - lock_account8 - lock_transfer_account8
when account_name = 'ACCOUNT13' then
balance - lock_account13
when account_name = 'ACCOUNT14' then
balance
else
0
end availableBalance,
replace(account_name, 'ACCOUNT', '') accountType,balance
from CU_MEMBER_ACCOUNT unpivot(balance for account_name in(account1, account2, account3, account4,account5,
account6, account7, account8,account9, account10,account13,account14))
where del_flag=0
<if test="memberCode != null and memberCode != ''">
and pk_member = (
select pk_id from cu_member m where m.member_code=#{memberCode} and m.del_flag=0)
</if>
<if test="pkMember != null">
and pk_member = #{pkMember}
</if>
and replace(account_name, 'ACCOUNT', '') in
<foreach collection="accountTypes" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<update id="updateBatchMemberAccountByPkmember">
MERGE INTO cu_member_account m
USING (select *
from (select a.field_value,
r.recharge_amount,
pk_member,
r.recharge_method
from cu_member_recharge r
left join bd_account a
on r.pk_account = a.pk_id
where r.del_flag = 0
and r.batch = #{batch}) tt pivot(sum(recharge_amount)
for field_value in('1' as account1,
'2' as account2,
'3' as account3,
'4' as account4,
'5' as account5,
'6' as account6,
'7' as account7,
'8' as account8,
'9' as account9,
'10' as account10,
'12' as account12,
'13' as account13,
'14' as account14,
'15' as account15
))) t
ON (m.pk_member = t.pk_member)
WHEN MATCHED THEN
update
set m.account1 = NVL(t.account1, 0) + m.account1,
m.account2 = NVL(t.account2, 0) + m.account2,
m.account3 = NVL(t.account3, 0) + m.account3,
m.account4 = NVL(t.account4, 0) + m.account4,
m.WITHDRAW_ACCOUNT4 = case
when NVL(t.account4, 0) &lt; 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) >= 0 then
NVL(t.account4, 0) + m.WITHDRAW_ACCOUNT4
when NVL(t.account4, 0) &lt; 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) &lt; 0 then
0
else
m.WITHDRAW_ACCOUNT4
end,
m.CONSUME_ACCOUNT4 = case
when NVL(t.account4, 0) &lt; 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) &lt; 0 then
m.WITHDRAW_ACCOUNT4 + t.account4 + m.CONSUME_ACCOUNT4
else
NVL(t.account4, 0) + m.CONSUME_ACCOUNT4
end,
m.account5 = NVL(t.account5, 0) + m.account5,
m.account6 = NVL(t.account6, 0) + m.account6,
m.account7 = NVL(t.account7, 0) + m.account7,
m.account8 = NVL(t.account8, 0) + m.account8,
m.account9 = NVL(t.account9, 0) + m.account9,
m.account10 = NVL(t.account10, 0) + m.account10,
m.account12 = NVL(t.account12, 0) + m.account12,
m.account13 = NVL(t.account13, 0) + m.account13,
m.account14 = NVL(t.account14, 0) + m.account14,
m.account15 = NVL(t.account15, 0) + m.account15,
m.MODIFIED_TIME = sysdate,
m.PK_MODIFIED = #{pkModified}
</update>
<select id="queryMemberAccountByMemberCodes" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select m.member_code memberCode,
m.member_name memberName,
a.account1,
a.account2,
a.account3,
a.account4,
a.account5,
a.account6,
a.account7,
a.account8,
a.account9,
a.account10,
a.account11,
a.account12,
a.account13,
a.account14,
a.account15
from cu_member_account a, cu_member m
where a.pk_member = m.pk_id
and a.del_flag = 0
and m.del_flag = 0
and m.member_code in
<if test="memberCodes != null and memberCodes.size >0">
<foreach collection="memberCodes" item="item" open="(" close=")" separator=",">
#{item.memberCode}
</foreach>
</if>
<if test="memberCodeStrs != null and memberCodeStrs.size >0">
<foreach collection="memberCodeStrs" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
<select id="queryMemberAccountAllByMemberCodes" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select m.member_code memberCode,
m.member_name memberName,
a.*
from cu_member_account a, cu_member m
where a.pk_member = m.pk_id
and a.del_flag = 0
and m.del_flag = 0
<if test="memberCodes != null and memberCodes.size >0">
and m.member_code in
<foreach collection="memberCodes" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
<sql id="select_base">
with t1 as
(select u.member_code,
u.member_name,
u.pk_id,
u.pk_vertex vertex_id,
u.pk_team_code team_id,
v.vertex_name,
v.pk_member,
u.pk_place_parent,
u.pk_parent,
t.team_name
from cu_member u
left join bd_vertex v
on u.pk_vertex = v.pk_id
and v.del_flag = 0
left join cu_member_team t
on u.pk_team_code = t.pk_id
and t.del_flag = 0
where u.del_flag = 0
and u.pk_settle_country = #{pkCountry})
select ss.memberCode,
ss.memberName,
ss.pk_id pkId,
ss.vertexId,
ss.teamId,
ss.vertexName,
ss.pk_member,
ss.pk_place_parent,
ss.pk_parent,
ss.teamName,
ss.slevel,
pp.plevel,
account1,
lock_account1,
lock_transfer_account1,
account2,
lock_account2,
lock_transfer_account2,
account3,
lock_account3,
lock_transfer_account3,
account4,
lock_account4,
lock_transfer_account4,
lock_withdraw_account4,
withdraw_account4,
consume_account4,
account5,
lock_account5,
lock_transfer_account5,
account6,
lock_account6,
lock_transfer_account6,
account7,
lock_account7,
lock_transfer_account7,
account8,
lock_account8,
lock_transfer_account8,
account9,
lock_account9,
lock_transfer_account9,
account10,
lock_account10,
account11,
lock_transfer_account10,
account12,
account13,
lock_account13,
account14,
account15
from (select member_code memberCode,
member_name memberName,
pk_id,
vertex_id vertexId,
team_id teamId,
vertex_name vertexName,
pk_member,
pk_place_parent,
pk_parent,
team_name teamName,
level slevel
from t1
<include refid="list_place_where"></include>
start with pk_id =
<if test="memberCode != null and memberCode != ''">
(select cm.pk_id
from cu_member cm
where cm.member_code = #{memberCode})
</if>
<if test="memberCode == null or memberCode == ''">
pk_member
</if>
connect by prior pk_id = pk_place_parent) ss,
(select pk_id, level plevel
from t1
<include refid="list_rem_where"></include>
start with pk_id =
<if test="memberCode != null and memberCode != ''">
(select cm.pk_id
from cu_member cm
where cm.member_code = #{memberCode})
</if>
<if test="memberCode == null or memberCode == ''">
pk_member
</if>
connect by prior pk_id = pk_parent) pp,
cu_member_account a
</sql>
<!-- 安置条件 -->
<sql id="list_place_where">
<where>
1=1
<if test="memberName != null and memberName != ''">
and member_name like #{memberName} || '%'
</if>
<if test="vertexName != null and vertexName != ''">
and vertex_name like #{memberName} || '%'
</if>
<if test="teamName != null and teamName != ''">
and team_name like #{teamName} || '%'
</if>
<if test="teamId != null">
and team_id = #{teamId}
</if>
<if test="vertexId != null">
and vertex_id = #{vertexId}
</if>
<if test="slevel != null">
and level &lt;= #{slevel}
</if>
</where>
</sql>
<!-- 推荐条件 -->
<sql id="list_rem_where">
<where>
1=1
<if test="memberName != null and memberName != ''">
and member_name like #{memberName} || '%'
</if>
<if test="vertexName != null and vertexName != ''">
and vertex_name like #{memberName} || '%'
</if>
<if test="teamName != null and teamName != ''">
and team_name like #{teamName} || '%'
</if>
<if test="teamId != null">
and team_id = #{teamId}
</if>
<if test="vertexId != null">
and vertex_id = #{vertexId}
</if>
<if test="plevel != null">
and level &lt;= #{plevel}
</if>
</where>
</sql>
<sql id="list_where">
<where>
ss.pk_id = pp.pk_id
and ss.pk_id = a.pk_member
and a.del_flag = 0
and a.pk_country = #{pkCountry}
</where>
</sql>
<sql id="ids_where">
<where>
ss.pk_id = pp.pk_id
and ss.pk_id = a.pk_member
and a.del_flag = 0
and a.pk_country = #{pkCountry}
and ss.pk_id in
<foreach collection="pkIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</where>
</sql>
<select id="selectMemberAccountList" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
<include refid="select_base"/>
<choose>
<when test="pkIds != null and pkIds.size >0">
<include refid="ids_where"></include>
</when>
<otherwise>
<include refid="list_where"></include>
</otherwise>
</choose>
order by a.creation_time Desc,a.PK_ID Desc
</select>
<sql id="select_default_base">
select u.member_code,
u.member_name,
u.pk_id pkId,
u.pk_vertex vertex_id,
u.pk_team_code team_id,
v.vertex_name,
v.pk_member,
u.pk_place_parent,
u.pk_parent,
t.team_name,
1 slevel,
1 plevel,
a.account1,
a.lock_account1,
a.lock_transfer_account1,
a.account2,
a.lock_account2,
a.lock_transfer_account2,
a.account3,
a.lock_account3,
a.lock_transfer_account3,
a.account4,
a.lock_account4,
a.lock_transfer_account4,
a.lock_withdraw_account4,
a.withdraw_account4,
a.consume_account4,
a.account5,
a.lock_account5,
a.lock_transfer_account5,
a.account6,
a.lock_account6,
a.lock_transfer_account6,
a.account7,
a.lock_account7,
a.lock_transfer_account7,
a.account8,
a.lock_account8,
a.lock_transfer_account8,
a.account9,
a.lock_account9,
a.lock_transfer_account9,
a.account10,
a.lock_account10,
a.account11,
a.lock_transfer_account10,
a.account12,
a.account13,
a.lock_account13,
a.account14,
a.account15
from cu_member_account a,
cu_member u
left join bd_vertex v
on u.pk_vertex = v.pk_id
and v.del_flag = 0
left join cu_member_team t
on u.pk_team_code = t.pk_id
and t.del_flag = 0
</sql>
<sql id="list_default_where">
<where>
a.pk_member = u.pk_id
and u.del_flag = 0
and u.pk_settle_country = #{pkCountry}
<if test="memberName != null and memberName != ''">
and u.member_name like #{memberName} || '%'
</if>
<if test="memberCode != null and memberCode != ''">
and u.member_code like #{memberCode} || '%'
</if>
<if test="teamId != null">
and u.pk_team_code = #{teamId}
</if>
<if test="vertexId != null">
and u.pk_vertex = #{vertexId}
</if>
</where>
</sql>
<sql id="ids_default_where">
<where>
a.pk_member = u.pk_id
and u.del_flag = 0
and u.pk_settle_country = #{pkCountry}
and u.pk_id in
<foreach collection="pkIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</where>
</sql>
<select id="selectDefaultMemberAccountList" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
<include refid="select_default_base"/>
<choose>
<when test="pkIds != null and pkIds.size >0">
<include refid="ids_default_where"></include>
</when>
<otherwise>
<include refid="list_default_where"></include>
</otherwise>
</choose>
order by a.creation_time Desc,a.PK_ID Desc
</select>
<select id="selectPkMembersByMemberCode" resultType="java.lang.Long">
select a.pk_member
from cu_member_account a, cu_member c
where a.pk_member = c.pk_id
and c.del_flag = 0
and c.account_status = 0
and a.del_flag = 0
and c.pk_settle_country= #{pkCountry}
and c.member_code in
<foreach collection="memberCodes" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<update id="updateFrozenAmountInfo">
update cu_member_account a
set
<if test="lockAccount1 != null">
a.lock_account1 = #{lockAccount1},
</if>
<if test="lockTransferAccount1 != null">
a.lock_transfer_account1 = #{lockTransferAccount1},
</if>
<if test="account1Remarks != null and account1Remarks != ''">
a.account1_remarks = #{account1Remarks},
</if>
<if test="lockAccount2 != null">
a.lock_account2 = #{lockAccount2},
</if>
<if test="lockTransferAccount2 != null">
a.lock_transfer_account2 = #{lockTransferAccount2},
</if>
<if test="account2Remarks != null and account2Remarks != ''">
a.account2_remarks = #{account2Remarks},
</if>
<if test="lockAccount3 != null">
a.lock_account3 = #{lockAccount3},
</if>
<if test="lockTransferAccount3 != null">
a.lock_transfer_account3 = #{lockTransferAccount3},
</if>
<if test="account3Remarks != null and account3Remarks != ''">
a.account3_remarks = #{account3Remarks},
</if>
<if test="lockAccount4 != null">
a.lock_account4 = #{lockAccount4},
</if>
<if test="lockTransferAccount4 != null">
a.lock_transfer_account4 = #{lockTransferAccount4},
</if>
<if test="lockWithdrawAccount4 != null">
a.lock_withdraw_account4 = #{lockWithdrawAccount4},
</if>
<if test="account4Remarks != null and account4Remarks != ''">
a.account4_remarks = #{account4Remarks},
</if>
<if test="lockAccount5 != null">
a.lock_account5 = #{lockAccount5},
</if>
<if test="lockTransferAccount5 != null">
a.lock_transfer_account5 = #{lockTransferAccount5},
</if>
<if test="account5Remarks != null and account5Remarks != ''">
a.account5_remarks = #{account5Remarks},
</if>
<if test="lockAccount6 != null">
a.lock_account6 = #{lockAccount6},
</if>
<if test="lockTransferAccount6 != null">
a.lock_transfer_account6 = #{lockTransferAccount6},
</if>
<if test="account6Remarks != null and account6Remarks != ''">
a.account6_remarks = #{account6Remarks},
</if>
<if test="lockAccount7 != null">
a.lock_account7 = #{lockAccount7},
</if>
<if test="lockTransferAccount7 != null">
a.lock_transfer_account7 = #{lockTransferAccount7},
</if>
<if test="account7Remarks != null and account7Remarks != ''">
a.account7_remarks = #{account7Remarks},
</if>
<if test="lockAccount8 != null">
a.lock_account8 = #{lockAccount8},
</if>
<if test="lockTransferAccount8 != null">
a.lock_transfer_account8 = #{lockTransferAccount8},
</if>
<if test="account8Remarks != null and account8Remarks != ''">
a.account8_remarks = #{account8Remarks},
</if>
<if test="lockAccount9 != null">
a.lock_account9 = #{lockAccount9},
</if>
<if test="lockTransferAccount9 != null">
a.lock_transfer_account9 = #{lockTransferAccount9},
</if>
<if test="account9Remarks != null and account9Remarks != ''">
a.account9_remarks = #{account9Remarks},
</if>
<if test="lockAccount10 != null">
a.lock_account10 = #{lockAccount10},
</if>
<if test="lockTransferAccount10 != null">
a.lock_transfer_account10 = #{lockTransferAccount10},
</if>
<if test="account10Remarks != null and account10Remarks != ''">
a.account10_remarks = #{account10Remarks},
</if>
a.pk_modified = #{pkModified},
a.modified_time = sysdate
WHERE a.pk_member in
<foreach collection="pkMembers" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
<select id="queryMemberAccountByPkMember" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select m.member_code memberCode,
m.member_name memberName,
a.*
from cu_member_account a, cu_member m
where a.pk_member = m.pk_id
and a.del_flag = 0
and m.del_flag = 0
<if test="pkMembers != null and pkMembers.size >0">
and a.pk_member in
<foreach collection="pkMembers" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
</if>
</select>
<update id="batchUpdateMemberAccountByPkMember">
MERGE INTO cu_member_account m
USING
(
<foreach collection="pkMemberList" item="item" index="index" separator="union">
select #{item.pkMember} pk_member,
<choose>
<when test='isWithdraw != null and isWithdraw == "0" and item.withdrawBalance !=null'>
#{item.withdrawBalance} withdrawBalance,
</when>
<otherwise>
0 withdrawBalance,
</otherwise>
</choose>
<choose>
<when test='isWithdraw != null and isWithdraw == "0" and item.consumeBalance !=null'>
#{item.consumeBalance} consumeBalance,
</when>
<otherwise>
0 consumeBalance,
</otherwise>
</choose>
<if test='pkAccount == "1"'>
#{item.tradeAmount} account1
</if>
<if test='pkAccount == "2"'>
#{item.tradeAmount} account2
</if>
<if test='pkAccount == "4"'>
#{item.tradeAmount} account4
</if>
FROM DUAL
</foreach>
) t
ON ( t.pk_member=m.pk_member and m.pk_member in
<foreach collection="pkMemberList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>)
WHEN MATCHED THEN
UPDATE SET
<if test='pkAccount == "1"'>
m.account1 = NVL(t.account1, 0) + m.account1,
</if>
<if test='pkAccount == "2"'>
m.account2 = NVL(t.account2, 0) + m.account2,
</if>
<if test='pkAccount == "4"'>
m.account4 = NVL(t.account4, 0) + m.account4,
</if>
<if test='isWithdraw != null and isWithdraw == "0"'>
m.withdraw_account4 = NVL(t.withdrawBalance, 0) + m.withdraw_account4,
</if>
<if test='isWithdraw != null and isWithdraw == "0" '>
m.CONSUME_ACCOUNT4 = NVL(t.consumeBalance, 0) + m.CONSUME_ACCOUNT4,
</if>
m.MODIFIED_TIME = sysdate
</update>
<update id="batchUpdateMemberAccountByPkMemberCountry">
MERGE INTO cu_member_account m
USING
(
<foreach collection="pkMemberList" item="item" index="index" separator="union">
select #{item.pkMember} pk_member,
<if test='item.pkAccount == "1"'>
#{item.tradeAmount} account1,0 account2,0 account4,0 account14
</if>
<if test='item.pkAccount == "2"'>
0 account1,#{item.tradeAmount} account2,0 account4,0 account14
</if>
<if test='item.pkAccount == "4"'>
0 account1,0 account2,#{item.tradeAmount} account4,0 account14
</if>
<if test='item.pkAccount == "14"'>
0 account1,0 account2,0 account4,#{item.tradeAmount} account14
</if>
FROM DUAL
</foreach>
) t
ON ( t.pk_member=m.pk_member and m.pk_member in
<foreach collection="pkMemberList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>)
WHEN MATCHED THEN
UPDATE SET
m.account1 = NVL(t.account1, 0) + m.account1,
m.account2 = NVL(t.account2, 0) + m.account2,
m.account4 = NVL(t.account4, 0) + m.account4,
m.account14 = NVL(t.account14, 0) + m.account14,
<if test='isWithdraw != null and isWithdraw == "0"'>
m.withdraw_account4 = NVL(t.account4, 0) + m.withdraw_account4,
</if>
m.MODIFIED_TIME = sysdate
</update>
<update id="batchUpdateWalletStateByPkMember">
update cu_member_account a
<set>
<foreach collection="businessValueList" index="index" item="value">
<if test='value == "1"'>
is_transfer = 0,is_consume = 0,is_withdraw = 0,transfer_status = 0,
</if>
<if test='value == "2"'>
is_transfer = 1,
</if>
<if test='value == "4"'>
is_consume = 1,
</if>
<if test='value == "3"'>
is_withdraw = 1,
</if>
<if test='value == "5"'>
transfer_status =1,
</if>
</foreach>
a.MODIFIED_TIME = sysdate,
a.pk_modified = #{updatePkMember}
</set>
where a.pk_member in
<foreach collection="businessMemberList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
</update>
<select id="selectMemberAccountByPkMember" resultType="com.hzs.common.domain.member.account.CuMemberAccount">
select a.pk_member,
a.account1,
a.account2,
a.account3,
a.account4,
a.account5,
a.account6,
a.account7,
a.account8,
a.account9,
a.account10,
a.account11,
a.account12,
a.account13,
a.account14,
a.account15
from cu_member_account a
where a.del_flag = 0
<if test="pkMembers != null and pkMembers.size >0">
and a.pk_member in
<foreach collection="pkMembers" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
<select id="queryWalletBalanceByPkMember" resultType="com.hzs.member.account.dto.CuMemberRechargeAccountParam">
select pk_id,
decode(account_name, 'ACCOUNT4', WITHDRAW_ACCOUNT4 - lock_withdraw_account4, 0) withdrawBalance,
case
when account_name = 'ACCOUNT1' then
balance - lock_account1 - lock_transfer_account1
when account_name = 'ACCOUNT2' then
balance - lock_account2 - lock_transfer_account2
when account_name = 'ACCOUNT3' then
balance - lock_account3 - lock_transfer_account3
when account_name = 'ACCOUNT4' then
balance - lock_account4 - lock_transfer_account4 -
lock_withdraw_account4
when account_name = 'ACCOUNT5' then
balance - lock_account5 - lock_transfer_account5
when account_name = 'ACCOUNT6' then
balance - lock_account6 - lock_transfer_account6
when account_name = 'ACCOUNT7' then
balance - lock_account7 - lock_transfer_account7
when account_name = 'ACCOUNT8' then
balance - lock_account8 - lock_transfer_account8
when account_name = 'ACCOUNT13' then
balance - lock_account13
when account_name = 'ACCOUNT14' then
balance
else
0
end availableBalance,
case
when account_name = 'ACCOUNT1' then
lock_account1
when account_name = 'ACCOUNT2' then
lock_account2
when account_name = 'ACCOUNT3' then
lock_account3
when account_name = 'ACCOUNT4' then
lock_account4
when account_name = 'ACCOUNT5' then
lock_account5
when account_name = 'ACCOUNT6' then
lock_account6
when account_name = 'ACCOUNT7' then
lock_account7
when account_name = 'ACCOUNT8' then
lock_account8
when account_name = 'ACCOUNT13' then
lock_account13
else
0
end lockAccount,
case
when account_name = 'ACCOUNT1' then
lock_transfer_account1
when account_name = 'ACCOUNT2' then
lock_transfer_account2
when account_name = 'ACCOUNT3' then
lock_transfer_account3
when account_name = 'ACCOUNT4' then
lock_transfer_account4
when account_name = 'ACCOUNT5' then
lock_transfer_account5
when account_name = 'ACCOUNT6' then
lock_transfer_account6
when account_name = 'ACCOUNT7' then
lock_transfer_account7
when account_name = 'ACCOUNT8' then
lock_transfer_account8
else
0
end transferAccount,
case
when account_name = 'ACCOUNT4' then
lock_withdraw_account4
else
0
end withdrawAccount,
case
when account_name = 'ACCOUNT1' then
account1_remarks
when account_name = 'ACCOUNT2' then
account2_remarks
when account_name = 'ACCOUNT3' then
account3_remarks
when account_name = 'ACCOUNT4' then
account4_remarks
when account_name = 'ACCOUNT5' then
account5_remarks
when account_name = 'ACCOUNT6' then
account6_remarks
when account_name = 'ACCOUNT7' then
account7_remarks
when account_name = 'ACCOUNT8' then
account8_remarks
else
'0'
end remarks,
replace(account_name, 'ACCOUNT', '') accountType,
balance
from CU_MEMBER_ACCOUNT unpivot(balance for account_name in(account1,
account2,
account3,
account4,
account5,
account6,
account7,
account8,
account9,
account10,
account13,
account14
))
where pk_member = #{pkMember}
</select>
<select id="queryMemberAccountByMemberCodeAndName" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select cm.member_code memberCode, cm.member_name memberName, ca.*
from cu_member cm
inner join cu_member_account ca
on cm.pk_id = ca.pk_member
where cm.del_flag = 0
and ca.del_flag = 0
and cm.pay_status = 1
and cm.category = 0
and cm.pk_settle_country = #{pkCountry}
<if test="memberName != null and memberName != ''">
and cm.member_name like #{memberName} || '%'
</if>
<if test="memberCode != null and memberCode != ''">
and cm.member_code like #{memberCode} || '%'
</if>
</select>
<select id="selectMemberBonusAccountBySourceCode" resultType="com.hzs.common.domain.member.account.CuMemberAccountRechargeExt">
SELECT r.pk_member pkMember,
ma.account4 account4,
ma.withdraw_account4 withdrawAccount4,
ma.consume_account4 consumeAccount4,
ma.pk_modified pkModified,
ma.pk_country pkCountry,
r.recharge_code rechargeCode,
r.recharge_amount rechargeAmount,
r.pk_id rechargePkId
FROM cu_member_recharge r
left join cu_member_account ma
on r.pk_member = ma.pk_member
and ma.del_flag = 0
left join bd_account a
on r.pk_account = a.pk_id
and a.del_flag = 0
where r.del_flag = 0
and a.field_value = 4
and r.batch = #{sourceCode}
</select>
<!-- 查询指定数量会员账户SEQ -->
<select id="querySeqList" resultType="long">
SELECT CU_MEMBER_ACCOUNT_SEQ.nextval
FROM (select level from dual connect by #{param} >= level)
</select>
<!-- 批量保存会员账户信息 -->
<insert id="insertBatchCuMemberAccount">
INSERT ALL
<foreach collection="memberAccountList" item="item" separator=" ">
into CU_MEMBER_ACCOUNT (
PK_ID, PK_MEMBER, ACCOUNT4,
PK_CREATOR, CREATION_TIME, PK_COUNTRY
)
values (
#{item.pkId}, #{item.pkMember}, #{item.account4, jdbcType=NUMERIC},
#{item.pkCreator}, #{item.creationTime}, #{item.pkCountry}
)
</foreach>
SELECT 1 FROM dual
</insert>
<!-- 查询会员血缘伞下余额汇总 -->
<select id="queryAccountSummaryByMember" resultMap="AccountExResultMap">
select sum(cma.account1) account1,
sum(cma.account2) account2,
sum(cma.account3) account3,
sum(cma.account4) account4,
sum(cma.account5) account5,
sum(cma.account6) account6,
sum(cma.account7) account7,
sum(cma.account8) account8,
sum(cma.account9) account9,
sum(cma.account10) account10,
sum(cma.account11) account11,
sum(cma.account12) account12,
sum(cma.account13) account13,
sum(cma.account14) account14
from cu_member_account cma
where cma.del_flag = 0
and cma.pk_country = #{pkCountry}
and cma.pk_member in
(select cm.pk_id
from cu_member cm
start with cm.member_code = #{memberCode}
connect by cm.pk_place_parent = prior cm.pk_id)
</select>
<!-- 查询会员血缘下余额汇总 -->
<select id="queryAccountSummaryByVertex" resultMap="AccountExResultMap">
select sum(cma.account1) account1,
sum(cma.account2) account2,
sum(cma.account3) account3,
sum(cma.account4) account4,
sum(cma.account5) account5,
sum(cma.account6) account6,
sum(cma.account7) account7,
sum(cma.account8) account8,
sum(cma.account9) account9,
sum(cma.account10) account10,
sum(cma.account11) account11,
sum(cma.account12) account12,
sum(cma.account13) account13,
sum(cma.account14) account14
from cu_member_account cma
where cma.del_flag = 0
and cma.pk_country = #{pkCountry}
and cma.pk_member in
(select cm.pk_id from cu_member cm where cm.pk_vertex = #{pkVertex})
</select>
</mapper>