| package com.dayu.qiheonlinelibrary.card; | 
|   | 
| import com.dayu.baselibrary.tools.HexUtil; | 
| import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase; | 
| import com.dayu.qiheonlinelibrary.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(QHOnLineAppDatabase QHOnLineAppDatabase) { | 
|         setCardData(QHOnLineAppDatabase, 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; | 
|         } | 
|   | 
|     } | 
|   | 
|   | 
| } |