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 CU_MEMBER_ACCOUNT
        SET
        
            account1 = account1 + #{account1},
        
        
            account2 = account2 + #{account2},
        
        
            account3 = account3 + #{account3},
        
        
            account4 = account4 + #{account4},
        
        
            account5 = account5 + #{account5},
        
        
            account6 = account6 + #{account6},
        
        
            account7 = account7 + #{account7},
        
        
            account8 = account8 + #{account8},
        
        
            account9 = account9 + #{account9},
        
        
            account10 = account10 + #{account10},
        
        
            account11 = account11 + #{account11},
        
        
            account12 = account12 + #{account12},
        
        
            account13 = account13 + #{account13},
        
        
            account14 = account14 + #{account14},
        
        
            account15 = account15 + #{account15},
        
        
            account16 = account16 + #{account16},
        
        
            account17 = account17 + #{account17},
        
        
            account18 = account18 + #{account18},
        
        
            account19 = account19 + #{account19},
        
        
            account20 = account20 + #{account20},
        
        
            lock_account1 = #{lockAccount1},
        
        
            lock_account2 = #{lockAccount2},
        
        
            lock_account4 = #{lockAccount4},
        
        
            withdraw_account4 = withdraw_account4 + #{withdrawAccount4},
        
        
            consume_account4 = consume_account4 + #{consumeAccount4},
        
        
            lock_account13 = #{lockAccount13},
        
        pk_modified = #{pkModified},
        modified_time = sysdate
        WHERE pk_member = #{pkMember} and pk_country = #{pkCountry} and del_flag=0
        
            and account2 + #{account2} >= 0
        
        
            and account4 + #{account4} >= 0
        
    
    
    
        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) < 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) >= 0 then
                                                      NVL(t.account4, 0) + m.WITHDRAW_ACCOUNT4
                                                  when NVL(t.account4, 0) < 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) < 0 then
                                                      0
                                                  else
                                                      m.WITHDRAW_ACCOUNT4
                            end,
                        m.CONSUME_ACCOUNT4 = case
                                                 when NVL(t.account4, 0) < 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) < 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}
    
    
    
    
        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
        
        start with pk_id =
        
            (select cm.pk_id
            from cu_member cm
            where cm.member_code = #{memberCode})
        
        
            pk_member
        
        connect by prior pk_id = pk_place_parent) ss,
        (select pk_id, level plevel
        from t1
        
        start with pk_id =
        
            (select cm.pk_id
            from cu_member cm
            where cm.member_code = #{memberCode})
        
        
            pk_member
        
        connect by prior pk_id = pk_parent) pp,
        cu_member_account a
    
    
    
        
            1=1
            
                and member_name like #{memberName} || '%'
            
            
                and vertex_name like #{memberName} || '%'
            
            
                and team_name like #{teamName} || '%'
            
            
                and team_id = #{teamId}
            
            
                and vertex_id = #{vertexId}
            
            
                and level <= #{slevel}
            
        
    
    
    
        
            1=1
            
                and member_name like #{memberName} || '%'
            
            
                and vertex_name like #{memberName} || '%'
            
            
                and team_name like #{teamName} || '%'
            
            
                and team_id = #{teamId}
            
            
                and vertex_id = #{vertexId}
            
            
                and level <= #{plevel}
            
        
    
    
        
            ss.pk_id = pp.pk_id
            and ss.pk_id = a.pk_member
            and a.del_flag = 0
            and a.pk_country = #{pkCountry}
        
    
    
        
            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
            
                #{item}
            
        
    
    
    
        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
    
    
        
            a.pk_member = u.pk_id
            and u.del_flag = 0
            and u.pk_settle_country = #{pkCountry}
            
                and u.member_name like #{memberName} || '%'
            
            
                and u.member_code like #{memberCode} || '%'
            
            
                and u.pk_team_code = #{teamId}
            
            
                and u.pk_vertex = #{vertexId}
            
        
    
    
        
            a.pk_member = u.pk_id
            and u.del_flag = 0
            and u.pk_settle_country = #{pkCountry}
            and u.pk_id in
            
                #{item}
            
        
    
    
    
    
        update cu_member_account a
        set
        
            a.lock_account1 = #{lockAccount1},
        
        
            a.lock_transfer_account1 = #{lockTransferAccount1},
        
        
            a.account1_remarks = #{account1Remarks},
        
        
            a.lock_account2 = #{lockAccount2},
        
        
            a.lock_transfer_account2 = #{lockTransferAccount2},
        
        
            a.account2_remarks = #{account2Remarks},
        
        
            a.lock_account3 = #{lockAccount3},
        
        
            a.lock_transfer_account3 = #{lockTransferAccount3},
        
        
            a.account3_remarks = #{account3Remarks},
        
        
            a.lock_account4 = #{lockAccount4},
        
        
            a.lock_transfer_account4 = #{lockTransferAccount4},
        
        
            a.lock_withdraw_account4 = #{lockWithdrawAccount4},
        
        
            a.account4_remarks = #{account4Remarks},
        
        
            a.lock_account5 = #{lockAccount5},
        
        
            a.lock_transfer_account5 = #{lockTransferAccount5},
        
        
            a.account5_remarks = #{account5Remarks},
        
        
            a.lock_account6 = #{lockAccount6},
        
        
            a.lock_transfer_account6 = #{lockTransferAccount6},
        
        
            a.account6_remarks = #{account6Remarks},
        
        
            a.lock_account7 = #{lockAccount7},
        
        
            a.lock_transfer_account7 = #{lockTransferAccount7},
        
        
            a.account7_remarks = #{account7Remarks},
        
        
            a.lock_account8 = #{lockAccount8},
        
        
            a.lock_transfer_account8 = #{lockTransferAccount8},
        
        
            a.account8_remarks = #{account8Remarks},
        
        
            a.lock_account9 = #{lockAccount9},
        
        
            a.lock_transfer_account9 = #{lockTransferAccount9},
        
        
            a.account9_remarks = #{account9Remarks},
        
        
            a.lock_account10 = #{lockAccount10},
        
        
            a.lock_transfer_account10 = #{lockTransferAccount10},
        
        
            a.account10_remarks = #{account10Remarks},
        
        a.pk_modified = #{pkModified},
        a.modified_time = sysdate
        WHERE a.pk_member in
        
            #{item}
        
    
    
    
        MERGE INTO cu_member_account m
        USING
        (
        
            select #{item.pkMember} pk_member,
            
                
                    #{item.withdrawBalance} withdrawBalance,
                
                
                    0 withdrawBalance,
                
            
            
                
                    #{item.consumeBalance} consumeBalance,
                
                
                    0 consumeBalance,
                
            
            
                #{item.tradeAmount} account1
            
            
                #{item.tradeAmount} account2
            
            
                #{item.tradeAmount} account4
            
            FROM DUAL
        
        ) t
        ON ( t.pk_member=m.pk_member and m.pk_member in
        
            #{item.pkMember}
        )
        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.withdraw_account4 = NVL(t.withdrawBalance, 0) + m.withdraw_account4,
        
        
            m.CONSUME_ACCOUNT4 = NVL(t.consumeBalance, 0) + m.CONSUME_ACCOUNT4,
        
        m.MODIFIED_TIME = sysdate
    
    
        MERGE INTO cu_member_account m
        USING
        (
        
            select #{item.pkMember} pk_member,
            
                #{item.tradeAmount} account1,0 account2,0 account4,0 account14
            
            
                0 account1,#{item.tradeAmount} account2,0 account4,0 account14
            
            
                0 account1,0 account2,#{item.tradeAmount} account4,0 account14
            
            
                0 account1,0 account2,0 account4,#{item.tradeAmount} account14
            
            FROM DUAL
        
        ) t
        ON ( t.pk_member=m.pk_member and m.pk_member in
        
            #{item.pkMember}
        )
        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,
        
            m.withdraw_account4 = NVL(t.account4, 0) + m.withdraw_account4,
        
        m.MODIFIED_TIME = sysdate
    
    
        update cu_member_account a
        
            
                
                    is_transfer = 0,is_consume = 0,is_withdraw = 0,transfer_status = 0,
                
                
                    is_transfer = 1,
                
                
                    is_consume = 1,
                
                
                    is_withdraw = 1,
                
                
                    transfer_status =1,
                
            
            a.MODIFIED_TIME = sysdate,
            a.pk_modified = #{updatePkMember}
        
        where a.pk_member in
        
            #{item.pkMember}
        
    
    
    
    
    
    
    
    
    
        INSERT ALL
        
            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}
            )
        
        SELECT 1 FROM dual