id, protocol, cardAddr, cardNum, clientId, money, `state`, original_card_id, createDt, 
    replaceDt, rechargeDt, lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt, 
    lastOper, remarks, order_no
  
  
  
    
    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, order_no)
    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}, #{orderNo,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,
      
      
        order_no,
      
    
    
      
        #{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},
      
      
        #{orderNo,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},
      
      
        order_no = #{orderNo,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},
      order_no = #{orderNo,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
    );
  
  
  
    UPDATE se_client_card
    SET state = 1
    WHERE state = 4 AND order_no = #{orderNumber}
  
  
  
  
  
    UPDATE se_client_card
    SET money = 0
    WHERE id = (SELECT original_card_id FROM se_client_card WHERE id = (SELECT card_id FROM se_card_operate WHERE order_no = #{orderNumber}))