id,
        protocol,
        cardAddr,
        cardNum,
        clientId,
        money,
        `state`,
        original_card_id,
        createDt,
        replaceDt,
        rechargeDt,
        lossDtDt,
        cancelDt,
        unlockDt,
        reversalDt,
        refundDt,
        consumeDt,
        lastOper,
        remarks
    
    
    
        
        delete
        from se_client_card
        where id = #{id,jdbcType=BIGINT}
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
        insert into se_client_card (id, protocol, cardAddr, cardNum, clientId,
                                    money, `state`, original_card_id, createDt,
                                    replaceDt, rechargeDt, lossDtDt,
                                    cancelDt, unlockDt, reversalDt, refundDt,
                                    consumeDt, lastOper, remarks)
        values (#{id,jdbcType=BIGINT}, #{protocol,jdbcType=VARCHAR}, #{cardaddr,jdbcType=VARCHAR},
                #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},
                #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{originalCardId,jdbcType=BIGINT},
                #{createdt,jdbcType=TIMESTAMP},
                #{replacedt,jdbcType=TIMESTAMP}, #{rechargedt,jdbcType=TIMESTAMP}, #{lossdtdt,jdbcType=TIMESTAMP},
                #{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP},
                #{refunddt,jdbcType=TIMESTAMP}, #{consumedt,jdbcType=TIMESTAMP}, #{lastoper,jdbcType=TINYINT},
                #{remarks,jdbcType=VARCHAR})
    
    
        
        insert into se_client_card
        
            
                id,
            
            
                protocol,
            
            
                cardAddr,
            
            
                cardNum,
            
            
                clientId,
            
            
                money,
            
            
                `state`,
            
            
                original_card_id,
            
            
                createDt,
            
            
                replaceDt,
            
            
                rechargeDt,
            
            
                lossDtDt,
            
            
                cancelDt,
            
            
                unlockDt,
            
            
                reversalDt,
            
            
                refundDt,
            
            
                consumeDt,
            
            
                lastOper,
            
            
                remarks,
            
        
        
            
                #{id,jdbcType=BIGINT},
            
            
                #{protocol,jdbcType=VARCHAR},
            
            
                #{cardaddr,jdbcType=VARCHAR},
            
            
                #{cardnum,jdbcType=BIGINT},
            
            
                #{clientid,jdbcType=BIGINT},
            
            
                #{money,jdbcType=FLOAT},
            
            
                #{state,jdbcType=TINYINT},
            
            
                #{originalCardId,jdbcType=BIGINT},
            
            
                #{createdt,jdbcType=TIMESTAMP},
            
            
                #{replacedt,jdbcType=TIMESTAMP},
            
            
                #{rechargedt,jdbcType=TIMESTAMP},
            
            
                #{lossdtdt,jdbcType=TIMESTAMP},
            
            
                #{canceldt,jdbcType=TIMESTAMP},
            
            
                #{unlockdt,jdbcType=TIMESTAMP},
            
            
                #{reversaldt,jdbcType=TIMESTAMP},
            
            
                #{refunddt,jdbcType=TIMESTAMP},
            
            
                #{consumedt,jdbcType=TIMESTAMP},
            
            
                #{lastoper,jdbcType=TINYINT},
            
            
                #{remarks,jdbcType=VARCHAR},
            
        
    
    
        
        update se_client_card
        
            
                protocol = #{protocol,jdbcType=VARCHAR},
            
            
                cardAddr = #{cardaddr,jdbcType=VARCHAR},
            
            
                cardNum = #{cardnum,jdbcType=BIGINT},
            
            
                clientId = #{clientid,jdbcType=BIGINT},
            
            
                money = #{money,jdbcType=FLOAT},
            
            
                `state` = #{state,jdbcType=TINYINT},
            
            
                `original_card_id` = #{originalCardId,jdbcType=BIGINT},
            
            
                createDt = #{createdt,jdbcType=TIMESTAMP},
            
            
                replaceDt = #{replacedt,jdbcType=TIMESTAMP},
            
            
                rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
            
            
                lossDtDt = #{lossdtdt,jdbcType=TIMESTAMP},
            
            
                cancelDt = #{canceldt,jdbcType=TIMESTAMP},
            
            
                unlockDt = #{unlockdt,jdbcType=TIMESTAMP},
            
            
                reversalDt = #{reversaldt,jdbcType=TIMESTAMP},
            
            
                refundDt = #{refunddt,jdbcType=TIMESTAMP},
            
            
                consumeDt = #{consumedt,jdbcType=TIMESTAMP},
            
            
                lastOper = #{lastoper,jdbcType=TINYINT},
            
            
                remarks = #{remarks,jdbcType=VARCHAR},
            
        
        where id = #{id,jdbcType=BIGINT}
    
    
        
        update se_client_card
        set protocol         = #{protocol,jdbcType=VARCHAR},
            cardAddr         = #{cardaddr,jdbcType=VARCHAR},
            cardNum          = #{cardnum,jdbcType=BIGINT},
            clientId         = #{clientid,jdbcType=BIGINT},
            money            = #{money,jdbcType=FLOAT},
            `state`          = #{state,jdbcType=TINYINT},
            original_card_id = #{originalCardId,jdbcType=BIGINT},
            createDt         = #{createdt,jdbcType=TIMESTAMP},
            replaceDt        = #{replacedt,jdbcType=TIMESTAMP},
            rechargeDt       = #{rechargedt,jdbcType=TIMESTAMP},
            lossDtDt         = #{lossdtdt,jdbcType=TIMESTAMP},
            cancelDt         = #{canceldt,jdbcType=TIMESTAMP},
            unlockDt         = #{unlockdt,jdbcType=TIMESTAMP},
            reversalDt       = #{reversaldt,jdbcType=TIMESTAMP},
            refundDt         = #{refunddt,jdbcType=TIMESTAMP},
            consumeDt        = #{consumedt,jdbcType=TIMESTAMP},
            lastOper         = #{lastoper,jdbcType=TINYINT},
            remarks          = #{remarks,jdbcType=VARCHAR}
        where id = #{id,jdbcType=BIGINT}
    
    
        update se_client_card
        set money = #{money,jdbcType=FLOAT}
        where id = #{id,jdbcType=BIGINT}
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        UPDATE se_client_card
        SET state = 1
        WHERE id = (
            SELECT id FROM (
                SELECT id
                FROM se_client_card
                WHERE state = 4 AND cardAddr = #{cardAddr} AND lastOper  = #{operateType}
                ORDER BY id DESC
                LIMIT 1) AS subquery
        );