package com.dayu.qiheonlinelibrary.activity;
|
|
import android.content.Intent;
|
import android.nfc.NfcAdapter;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
|
import com.dayu.baselibrary.tools.HexUtil;
|
import com.dayu.baselibrary.utils.MornyUtil;
|
import com.dayu.baselibrary.utils.TipUtil;
|
import com.dayu.baselibrary.view.ConfirmDialog;
|
import com.dayu.qiheonlinelibrary.bean.CardInfoResult;
|
import com.dayu.qiheonlinelibrary.card.BlackCard;
|
import com.dayu.qiheonlinelibrary.card.ConfigurationPowerCard;
|
import com.dayu.qiheonlinelibrary.card.DomainCard;
|
import com.dayu.qiheonlinelibrary.card.ElectricPriceCard;
|
import com.dayu.qiheonlinelibrary.card.ManageCard;
|
import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
|
import com.dayu.qiheonlinelibrary.card.RegionCard;
|
import com.dayu.qiheonlinelibrary.card.UserCard;
|
import com.dayu.qiheonlinelibrary.databinding.ActivityRedCardQhlBinding;
|
import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean;
|
import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
|
import com.dayu.qiheonlinelibrary.net.ApiManager;
|
import com.dayu.qiheonlinelibrary.net.BaseResponse;
|
import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
|
import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper;
|
import com.dayu.qiheonlinelibrary.tools.NfcReadHelper;
|
import com.dayu.qiheonlinelibrary.utils.CardCommon;
|
import com.dayu.qiheonlinelibrary.view.ProgressDialog;
|
|
|
import java.util.Calendar;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* Copyright (C), 2023,
|
* Author: zuo
|
* Date: 2023-11-10 19:52
|
* Description: 读卡界面
|
*/
|
public class ReadCardAcitivy extends BaseNfcActivity {
|
|
volatile UserCard userCard;
|
ActivityRedCardQhlBinding redCardBinding;
|
|
|
Intent intent;
|
ConfirmDialog confirmDialog;
|
AdminDataBean adminData;
|
String cardNumber;
|
String userCardStr;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
redCardBinding = ActivityRedCardQhlBinding.inflate(LayoutInflater.from(this));
|
setContentView(redCardBinding.getRoot());
|
}
|
|
|
@Override
|
public void onNewIntent(Intent intent) {
|
this.intent = intent;
|
ProgressDialog.show(this);
|
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
|
readAllData(intent);
|
}
|
super.onNewIntent(intent);
|
}
|
|
/**
|
* 读取全部数据
|
*/
|
|
public void readAllData(Intent intent) {
|
|
|
String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
|
|
String[] cardTypes = cardType.split(",");
|
if (cardTypes != null && cardTypes.length == 2) {
|
cardNumber = cardType.split(",")[0];
|
cardType = cardType.split(",")[1];
|
}
|
List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData();
|
String state = "";
|
if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
|
state = "终端写卡";
|
} else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
|
state = "刷卡开泵后";
|
} else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
|
state = "叠加充值";
|
}
|
switch (cardType) {
|
case CardCommon.USER_CARD_TYPE_1:
|
case CardCommon.USER_CARD_TYPE_2:
|
case CardCommon.USER_CARD_TYPE_3:
|
|
if (!data.isEmpty()) {
|
if (!TextUtils.isEmpty(cardNumber)) {
|
userCard = UserCard.getBean(data);
|
getUserInfoAndCardInfo(cardNumber);
|
} else {
|
|
}
|
} else {
|
TipUtil.show("卡片识别错误,请重试!");
|
}
|
|
break;
|
case CardCommon.MANAGE_CRAD://管理卡
|
ManageCard manageCard = ManageCard.getBean(data);
|
viweGone(false);
|
userCardStr = manageCard.getUserCard().toUpperCase();
|
redCardBinding.readCardTypeTV.setText("当前为管理卡" + "\n\n"
|
+ "原始卡号:" + userCardStr);
|
|
break;
|
case CardCommon.CLEAN_CARD_TYPE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为清零卡");
|
break;
|
case CardCommon.REGISTERED_CARD_TYPE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为重新注册设备卡");
|
break;
|
case CardCommon.CLEAN_ALL_USER_CARD_TYPE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为删除全部用户卡");
|
break;
|
case CardCommon.DOMAIN_CARD_TYPE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为设置域名卡");
|
if (!data.isEmpty()) {
|
DomainCard domainCard = DomainCard.toBean(data);
|
assert domainCard != null;
|
redCardBinding.readCardDataTV.setText("序号:" + domainCard.getDomainNumber() + "\n" + "域名:" + domainCard.getDomainName() + "\n" + "端口号:" + domainCard.getPort());
|
} else {
|
TipUtil.show("卡片识别错误,请重试!");
|
}
|
break;
|
case CardCommon.TEST_CARD_TYPE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为测试卡");
|
break;
|
case CardCommon.CONFIGURATION_CARD_TYPE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为配置设备注册信息卡");
|
break;
|
case CardCommon.CONFIGURATION_POWER_CARD_TYPE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前配置水泵功率卡");
|
if (!data.isEmpty()) {
|
ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0));
|
redCardBinding.readCardDataTV.setText(powerCard.getPower());
|
} else {
|
TipUtil.show("卡片识别错误,请重试!");
|
}
|
break;
|
case CardCommon.BLACK:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为黑卡");
|
BlackCard blackCard = BlackCard.getBean(data);
|
redCardBinding.readCardDataTV.setText("当前黑卡用户号为:" + blackCard.getBlackCard());
|
break;
|
case CardCommon.REGION:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为区域表号卡");
|
if (!data.isEmpty()) {
|
RegionCard regionCard = RegionCard.getBean(data);
|
StringBuilder stringBuilder = new StringBuilder();
|
stringBuilder.append("区域号:").append(regionCard.getArerNumber());
|
redCardBinding.readCardDataTV.setText(stringBuilder.toString());
|
} else {
|
TipUtil.show("卡片识别错误,请重试!");
|
}
|
|
break;
|
case CardCommon.ELECTRIC_PRICE:
|
viweGone(false);
|
redCardBinding.readCardTypeTV.setText("当前为电量单价卡");
|
if (!data.isEmpty()) {
|
ElectricPriceCard electricPriceCard = ElectricPriceCard.getBean(data);
|
StringBuilder electricPriceBuilder = new StringBuilder();
|
electricPriceBuilder.append("电量单价:").append(electricPriceCard.getElectricPrice());
|
electricPriceBuilder.append("元");
|
redCardBinding.readCardDataTV.setText(electricPriceBuilder.toString());
|
} else {
|
TipUtil.show("卡片识别错误,请重试!");
|
}
|
break;
|
default:
|
TipUtil.show(ReadCardAcitivy.this, "卡片无法识别");
|
break;
|
}
|
stopAnim();
|
|
}
|
|
|
private void viweGone(boolean isUSerCard) {
|
redCardBinding.readImgLL.setVisibility(View.GONE);
|
if (isUSerCard) {
|
redCardBinding.readCardTypeLL.setVisibility(View.GONE);
|
redCardBinding.readUserLL.setVisibility(View.VISIBLE);
|
} else {
|
redCardBinding.readCardTypeLL.setVisibility(View.VISIBLE);
|
redCardBinding.readUserLL.setVisibility(View.GONE);
|
}
|
|
}
|
|
|
void stopAnim() {
|
ProgressDialog.dismiss();
|
// or avi.smoothToHide();
|
}
|
|
/**
|
* 获取卡信息和用户信息
|
*
|
* @param iccardCode
|
*/
|
public void getUserInfoAndCardInfo(String iccardCode) {
|
Map<String, Object> data = new HashMap<>();
|
//ic卡信息id
|
data.put("iccardNum", iccardCode);
|
ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
|
@Override
|
public void onNext(BaseResponse<CardInfoResult> t) {
|
String state = "";
|
if (t.isSuccess()) {
|
setUserData(t.getData());
|
}
|
}
|
});
|
}
|
|
private void setUserData(CardInfoResult cardInfoResult) {
|
viweGone(true);
|
if (cardInfoResult != null) {
|
redCardBinding.redName.setText(cardInfoResult.getPeasantName());
|
redCardBinding.redCardCode.setText(cardNumber);
|
redCardBinding.redUserCode.setText(cardInfoResult.getIccardCode());
|
redCardBinding.redBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + "元");
|
redCardBinding.redElectric.setText(MornyUtil.changeF2Y(userCard.getSurplusElecticity()) + "度");
|
redCardBinding.redTotalMorny.setText(MornyUtil.changeF2Y(userCard.getTotalMorny()) + "元");
|
redCardBinding.redPhone.setText(cardInfoResult.getPeasantPhone());
|
redCardBinding.redCodeId.setText(cardInfoResult.getPeasantIdNumber());
|
if (cardInfoResult.getIccardStatus() == 0) {
|
redCardBinding.redStatu.setText("正常");
|
} else if (cardInfoResult.getIccardStatus() == 1) {
|
redCardBinding.redStatu.setText("已注销");
|
} else {
|
redCardBinding.redStatu.setText("已挂失");
|
}
|
|
}
|
|
|
}
|
|
}
|