package com.dayu.qihealonelibrary.card; 
 | 
  
 | 
import com.dayu.baselibrary.tools.HexUtil; 
 | 
import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase; 
 | 
import com.dayu.qihealonelibrary.utils.CardCommon; 
 | 
  
 | 
import java.io.Serializable; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * author: zuo 
 | 
 * Date: 2024-02-29 
 | 
 * Time: 17:17 
 | 
 * 备注:配置黑卡  当用户丢失卡时,需要在对应的控制器把此用户配置为黑户,防止非法用水 
 | 
 */ 
 | 
public class BlackCard extends BaseCard implements Serializable { 
 | 
  
 | 
    public String cardType = CardCommon.BLACK; 
 | 
  
 | 
    public String blackCard;//黑户卡号 
 | 
  
 | 
    public String getBlackCard() { 
 | 
        return blackCard; 
 | 
    } 
 | 
  
 | 
    public void setBlackCard(String blackCard) { 
 | 
        this.blackCard = blackCard; 
 | 
    } 
 | 
  
 | 
    public byte[] toByte(QHAloneAppDatabase QHAloneAppDatabase) { 
 | 
        setCardData(QHAloneAppDatabase, cardType); 
 | 
        Zero zero = new Zero(); 
 | 
        return zero.toByte(); 
 | 
    } 
 | 
  
 | 
  
 | 
    public static BlackCard getBean(List<byte[]> data) { 
 | 
        BlackCard blackCard = new BlackCard(); 
 | 
        if (data != null) { 
 | 
            byte[] zero = data.get(0); 
 | 
            byte[] cardDataByte = new byte[4]; 
 | 
            System.arraycopy(zero, 1, cardDataByte, 0, cardDataByte.length); 
 | 
            blackCard.cardData = HexUtil.bytesToHex(cardDataByte); 
 | 
  
 | 
            byte[] blackCardByte = new byte[4]; 
 | 
            System.arraycopy(zero, 5, blackCardByte, 0, blackCardByte.length); 
 | 
            blackCard.blackCard = HexUtil.bytesToHex(blackCardByte); 
 | 
        } 
 | 
  
 | 
        return blackCard; 
 | 
    } 
 | 
  
 | 
    public class Zero { 
 | 
        public byte[] toByte() { 
 | 
            byte[] data = new byte[16]; 
 | 
            data[0] = HexUtil.hexToByte(cardType); 
 | 
            byte[] cardDatas = HexUtil.hexToByteArray(cardData); 
 | 
            System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); 
 | 
            byte[] blackCardByte = HexUtil.hexToByteArray(blackCard); 
 | 
            System.arraycopy(blackCardByte, 0, data, 5, blackCardByte.length); 
 | 
            data[15] = getByteSum(data); 
 | 
            return data; 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |