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; 
 | 
  
 | 
/** 
 | 
 * Copyright (C), 2024, 
 | 
 * Author: zuo 
 | 
 * Date: 2024-3-04 11:22 
 | 
 * Description:密码卡 
 | 
 */ 
 | 
public class PassWordCard extends BaseCard implements Serializable { 
 | 
    public String cardType = CardCommon.PASS_WORD_CRAD_TYPE;//卡类型 
 | 
  
 | 
    public String passWord;//六位的密码 
 | 
  
 | 
    public String getPassWord() { 
 | 
        return passWord; 
 | 
    } 
 | 
  
 | 
    public void setPassWord(String passWord) { 
 | 
        this.passWord = passWord; 
 | 
    } 
 | 
  
 | 
    public static PassWordCard getBean(List<byte[]> data) { 
 | 
  
 | 
        if (data != null) { 
 | 
            PassWordCard passWordCard = new PassWordCard(); 
 | 
  
 | 
            byte[] zero = data.get(0); 
 | 
            byte[] passWordByte = new byte[6]; 
 | 
            System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length); 
 | 
            passWordCard.passWord = HexUtil.bytesToHex(passWordByte); 
 | 
            return passWordCard; 
 | 
        } 
 | 
        return null; 
 | 
    } 
 | 
  
 | 
  
 | 
    public byte[] toByte(QHOnLineAppDatabase QHOnLineAppDatabase) { 
 | 
        setCardData(QHOnLineAppDatabase, cardType); 
 | 
        Zero zero = new Zero(); 
 | 
        return zero.toByte(); 
 | 
    } 
 | 
  
 | 
  
 | 
    public class Zero  { 
 | 
        public byte[] toByte() { 
 | 
            byte[] data = new byte[16]; 
 | 
            data[0] = HexUtil.hexToByte(cardType); 
 | 
            byte[] cardDatas = HexUtil.hexToByteArray(cardData); 
 | 
            if (cardDatas != null) { 
 | 
                System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); 
 | 
            } 
 | 
  
 | 
            byte[] passWordBytes = HexUtil.hexToByteArray(passWord); 
 | 
            if (passWordBytes != null) { 
 | 
                System.arraycopy(passWordBytes, 0, data, 5, passWordBytes.length); 
 | 
            } 
 | 
  
 | 
            data[15] = getByteSum(data); 
 | 
            return data; 
 | 
        } 
 | 
  
 | 
    } 
 | 
} 
 |