| | |
| | | package com.dayu.qihealonelibrary.card; |
| | | |
| | | import com.dayu.baselibrary.bean.BaseUserCardCard; |
| | | import com.dayu.baselibrary.tools.HexUtil; |
| | | import com.dayu.qihealonelibrary.utils.CardCommon; |
| | | import com.tencent.bugly.crashreport.CrashReport; |
| | |
| | | * Date: 2023-11-07 9:37 |
| | | * Description: 齐河项目用户卡结构 |
| | | */ |
| | | public class UserCard implements Serializable { |
| | | public class UserCard extends BaseUserCardCard implements Serializable { |
| | | public String cardType = CardCommon.USER_CARD_TYPE_1;//写卡标志 A1刷卡开泵前 A8刷卡开泵后 A2叠加充值 |
| | | |
| | | public int arerNumber;//区域号(底位在前高位在后) |
| | |
| | | |
| | | public int balance;//剩余金额 底位在前 2位小数点,单位分 |
| | | |
| | | public int surplusWater;//剩余水量 底位在前 2位小数点 单位立方米 |
| | | public int surplusWater;//剩余水量 底位在前 2位小数点 单位立方米 (跟价格一样先乘以100) |
| | | |
| | | public Calendar rechargeDate;// 购水时间 BCD |
| | | |
| | |
| | | * |
| | | * @param data |
| | | */ |
| | | public static UserCard getBean(List<byte[]> data) { |
| | | @Override |
| | | public UserCard getBean(List<byte[]> data) { |
| | | try { |
| | | UserCard userCard = new UserCard(); |
| | | //第0块解析 |
| | |
| | | int year = (rechargeDate.get(Calendar.YEAR)) % 1000; |
| | | int month = rechargeDate.get(Calendar.MONTH) + 1; // 月份从0开始,所以需要加1 |
| | | int day = rechargeDate.get(Calendar.DAY_OF_MONTH); |
| | | byte bcdYear = (byte) ((year / 10) << 4 | ((year % 10) / 100)); |
| | | byte bcdMonth = (byte) ((month / 10) << 4 | (month % 10)); |
| | | byte bcdDay = (byte) ((day / 10) << 4 | (day % 10)); |
| | | byte bcdYear = HexUtil.getIntToBCD(year)[0]; |
| | | byte bcdMonth = HexUtil.getIntToBCD(month)[0]; |
| | | byte bcdDay = HexUtil.getIntToBCD(day)[0]; |
| | | data[12] = bcdYear; |
| | | data[13] = bcdMonth; |
| | | data[14] = bcdDay; |
| | |
| | | int year = (rechargeDate.get(Calendar.YEAR)) % 1000; |
| | | int month = rechargeDate.get(Calendar.MONTH) + 1; // 月份从0开始,所以需要加1 |
| | | int day = rechargeDate.get(Calendar.DAY_OF_MONTH); |
| | | byte bcdYear = (byte) ((year / 10) << 4 | ((year % 10) / 100)); |
| | | byte bcdMonth = (byte) ((month / 10) << 4 | (month % 10)); |
| | | byte bcdDay = (byte) ((day / 10) << 4 | (day % 10)); |
| | | byte bcdYear = HexUtil.getIntToBCD(year)[0]; |
| | | byte bcdMonth = HexUtil.getIntToBCD(month)[0]; |
| | | byte bcdDay = HexUtil.getIntToBCD(day)[0]; |
| | | data[12] = bcdYear; |
| | | data[13] = bcdMonth; |
| | | data[14] = bcdDay; |