package com.dayu.qiheonlinelibrary.activity;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.view.KeyEvent;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
|
import com.dayu.baselibrary.tools.HexUtil;
|
import com.dayu.baselibrary.utils.AidlUtil;
|
import com.dayu.baselibrary.utils.BaseCommon;
|
import com.dayu.baselibrary.utils.DateUtil;
|
import com.dayu.baselibrary.utils.DeviceUtils;
|
import com.dayu.baselibrary.utils.MornyUtil;
|
import com.dayu.baselibrary.utils.TipUtil;
|
import com.dayu.baselibrary.utils.ToastUtil;
|
import com.dayu.baselibrary.view.ConfirmDialog;
|
import com.dayu.baselibrary.view.TitleBar;
|
import com.dayu.qiheonlinelibrary.QHOnLineApplication;
|
import com.dayu.qiheonlinelibrary.bean.LoginResult;
|
import com.dayu.qiheonlinelibrary.bean.OpenCardResult;
|
import com.dayu.qiheonlinelibrary.bean.ReplaceCardResult;
|
import com.dayu.qiheonlinelibrary.card.CleanCard;
|
import com.dayu.qiheonlinelibrary.card.CleanUserCard;
|
import com.dayu.qiheonlinelibrary.card.ConfigurationPowerCard;
|
import com.dayu.qiheonlinelibrary.card.ConfigureDeviceRegistrationCrad;
|
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.PassWordCard;
|
import com.dayu.qiheonlinelibrary.card.RegionCard;
|
import com.dayu.qiheonlinelibrary.card.RegisteredCard;
|
import com.dayu.qiheonlinelibrary.card.TestCard;
|
import com.dayu.qiheonlinelibrary.card.UserCard;
|
import com.dayu.qiheonlinelibrary.databinding.ActivityWriteTextQhlBinding;
|
import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
|
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.NfcReadHelper;
|
import com.dayu.qiheonlinelibrary.tools.WriteCardUtils;
|
import com.dayu.qiheonlinelibrary.utils.CardCommon;
|
import com.dayu.qiheonlinelibrary.utils.NFCWreatUtils;
|
import com.dayu.qiheonlinelibrary.utils.PrintUtils;
|
import com.dayu.qiheonlinelibrary.view.ReplacementPriceDialog;
|
import com.tencent.bugly.crashreport.CrashReport;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* Copyright (C), 2023,
|
* Author: zuo
|
* Date: 2023-11-08 21:19
|
* Description: nfc写卡界面
|
*/
|
public class NFCWreatActivity extends BaseNfcActivity {
|
|
RegisteredCard registeredCard;
|
CleanUserCard cleanUserCard;
|
ManageCard manageCard;
|
DomainCard domainCard;
|
CleanCard cleanCard;
|
ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad;
|
TestCard testCard;
|
//区域表号卡
|
RegionCard regionCard;
|
ConfigurationPowerCard configurationPowerCard;
|
//密码卡
|
PassWordCard passWordCard;
|
//用户电量单价卡
|
ElectricPriceCard electricPriceCard;
|
UserCardBean userCardBeanByManager;
|
boolean electricPriceFlag = false;
|
boolean passwordFlag = false;
|
boolean cleanFlag = false;
|
boolean regionFlag = false;
|
boolean manageCardFlag = false;
|
boolean registeredFlag = false;
|
boolean administrativeCardFlag = false;
|
boolean cleanUserCardFlag = false;
|
|
boolean domainCrdFlag = false;
|
|
|
boolean configDeviceRegiestFlag = false;
|
|
boolean configPowerFlag = false;
|
|
UserCardBean userCardBean;
|
|
String morny;
|
String userName;
|
RechargeBean rechargeBean;
|
Intent intent;
|
//打印
|
QHOnLineApplication baseApp;
|
|
public static NFCWreatActivity nfcWreatActivity;
|
/**
|
* 是否是用户卡,假如是用户卡的话需要检测卡片是否已经开过户,假如已开户则报错不能再写卡
|
*/
|
boolean isUser = false;//
|
|
//是否是充值过程
|
boolean isRecharge = false;
|
|
ActivityWriteTextQhlBinding binding;
|
|
//当前卡的物理卡号
|
String cardNumber;
|
ConfirmDialog confirmDialog;
|
//旧的卡id
|
String iccardInfoId;
|
//补卡类型
|
int replaceType;
|
//补卡工本费用
|
String rechargeCardMoney;
|
ReplacementPriceDialog replacementPriceDialog;
|
ManagerToUserCard managerToUserCard;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
try {
|
binding = ActivityWriteTextQhlBinding.inflate(LayoutInflater.from(this));
|
setContentView(binding.getRoot());
|
nfcWreatActivity = this;
|
titleBack();
|
baseApp = QHOnLineApplication.getInstance();
|
getData();
|
} catch (Exception e) {
|
e.printStackTrace();
|
CrashReport.postCatchedException(e);
|
}
|
}
|
|
|
private void getData() {
|
try {
|
if (this.getIntent().hasExtra("userCard")) {
|
userCard = (UserCard) this.getIntent().getSerializableExtra("userCard");
|
}
|
if (this.getIntent().hasExtra("electricPriceCard")) {
|
electricPriceCard = (ElectricPriceCard) this.getIntent().getSerializableExtra("electricPriceCard");
|
|
binding.cardData.setText("制作用户电量单价卡\n当前单价:" + electricPriceCard.getElectricPrice().toString() + " 元");
|
}
|
if (this.getIntent().hasExtra("passWordCard")) {
|
passWordCard = (PassWordCard) this.getIntent().getSerializableExtra("passWordCard");
|
binding.cardData.setText("制作密码卡");
|
}
|
if (this.getIntent().hasExtra("cleanCard")) {
|
cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard");
|
binding.cardData.setText("制作清零卡");
|
}
|
if (this.getIntent().hasExtra("manageCard")) {
|
cardNumber = this.getIntent().getStringExtra("cardNumber");
|
manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard");
|
if (this.getIntent().hasExtra("userCardBean_manager")) {
|
userCardBeanByManager = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean_manager");
|
}
|
//显示的时候要反过来
|
String hex = HexUtil.spaceHex(manageCard.getUserCard());
|
hex = HexUtil.HighLowHex(hex);
|
binding.cardData.setText("制作管理卡(请将管理卡贴在设备上)\n用户卡号:" + hex);
|
}
|
if (this.getIntent().hasExtra("registeredCard")) {
|
registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard");
|
binding.cardData.setText("制作重新注册设备卡");
|
}
|
if (this.getIntent().hasExtra("dbUserCard")) {
|
userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
|
isUser = true;
|
}
|
if (this.getIntent().hasExtra("userCardBean")) {
|
userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean");
|
}
|
if (this.getIntent().hasExtra("cleanUserCard")) {
|
cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
|
binding.cardData.setText("制作删除全部用户卡");
|
}
|
if (this.getIntent().hasExtra("domainCard")) {
|
domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard");
|
binding.cardData.setText("制作设置域名卡");
|
}
|
if (this.getIntent().hasExtra("testCard")) {
|
testCard = (TestCard) this.getIntent().getSerializableExtra("testCard");
|
binding.cardData.setText("制作测试卡");
|
}
|
if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) {
|
configureDeviceRegistrationCrad = (ConfigureDeviceRegistrationCrad) this.getIntent().getSerializableExtra("configureDeviceRegistrationCrad");
|
binding.cardData.setText("制作配置设备注册信息卡");
|
}
|
if (this.getIntent().hasExtra("configurationPowerCard")) {
|
configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard");
|
binding.cardData.setText("制作配置水泵功率卡");
|
}
|
if (this.getIntent().hasExtra("regionCard")) {
|
regionCard = (RegionCard) this.getIntent().getSerializableExtra("regionCard");
|
binding.cardData.setText("制作区域表号卡");
|
}
|
if (this.getIntent().hasExtra("morny")) {
|
// 充值逻辑
|
isRecharge = true;
|
morny = this.getIntent().getStringExtra("morny");
|
userName = this.getIntent().getStringExtra("userName");
|
rechargeBean = (RechargeBean) this.getIntent().getSerializableExtra("rechargeBean");
|
if (MornyUtil.changeY2F(rechargeBean.getDeductionMorny()) == 0) {
|
binding.cardData.setText("充值金额:" + morny + " 元");
|
} else {
|
int realityMorny = MornyUtil.changeY2F(morny) - MornyUtil.changeY2F(rechargeBean.getDeductionMorny());
|
binding.cardData.setText("充值金额:" + morny + " 元\n" + "补扣金额:" + rechargeBean.getDeductionMorny() + " 元\n实际到账金额:" + MornyUtil.changeF2Y(realityMorny) + " 元");
|
}
|
}
|
if (this.getIntent().hasExtra("iccardInfoId")) {
|
iccardInfoId = this.getIntent().getStringExtra("iccardInfoId");
|
//补卡类型
|
replaceType = this.getIntent().getIntExtra("replaceType", 0);
|
replacementPriceDialog = new ReplacementPriceDialog(this, data -> {
|
if (TextUtils.isEmpty(data)) {
|
rechargeCardMoney = "0";
|
}
|
rechargeCardMoney = data;
|
binding.cardData.setText("补卡工本费:" + rechargeCardMoney + "元");
|
replacementPriceDialog.dismiss();
|
});
|
replacementPriceDialog.show();
|
}
|
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
CrashReport.postCatchedException(e);
|
}
|
}
|
|
/**
|
* 检测是否是用户卡,假如是用户卡的话需要检测卡片是否已经开过户,假如已开户则报错不能再写卡假如是用户卡需要
|
*/
|
private void checkHasUser() {
|
|
try {
|
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];
|
}
|
Log.i("NFCWreatActivity", "cardType=" + cardType);
|
if (cardType.equals(CardCommon.USER_CARD_TYPE_1) ||
|
cardType.equals(CardCommon.USER_CARD_TYPE_2) ||
|
cardType.equals(CardCommon.USER_CARD_TYPE_3)
|
) {
|
binding.textView.setText("该卡已经写入用户信息,请更换卡片");
|
binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red));
|
} else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) {
|
TipUtil.show(NFCWreatActivity.this, "请勿移动卡片,读卡失败请重试!!");
|
} else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) {
|
TipUtil.show(NFCWreatActivity.this, "卡片未能识别,请检查卡片是否是本公司卡片");
|
} else {
|
//读卡成功
|
Log.i("NFCWreatActivity", "olduserCard!=null saveData");
|
//
|
openCard(cardNumber, 1, userCardBean.getPersonId(), String.valueOf(userCardBean.getCardMorny()));
|
|
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
stopAnim();
|
}
|
|
|
private void saveData() {
|
try {
|
startAnim();
|
if (userCard != null || cleanCard != null || manageCard != null
|
|| registeredCard != null || cleanUserCard != null
|
|| domainCard != null || testCard != null
|
|| configureDeviceRegistrationCrad != null
|
|| configurationPowerCard != null || regionCard != null || passWordCard != null || electricPriceCard != null) {
|
|
if (electricPriceCard != null) {
|
electricPriceFlag = NFCWreatUtils.getInstance(this, baseDao).setElectricPriceCard(intent, electricPriceCard);
|
}
|
if (passWordCard != null) {
|
passwordFlag = NFCWreatUtils.getInstance(this, baseDao).setPassWordCard(intent, passWordCard);
|
}
|
if (regionCard != null) {
|
regionFlag = NFCWreatUtils.getInstance(this, baseDao).setRegionCard(intent, regionCard);
|
}
|
if (cleanCard != null) {
|
cleanFlag = NFCWreatUtils.getInstance(this, baseDao).setClean(intent, cleanCard);
|
}
|
if (manageCard != null) {
|
manageCardFlag = NFCWreatUtils.getInstance(this, baseDao).setmanageCard(intent, manageCard);
|
}
|
if (registeredCard != null) {
|
registeredFlag = NFCWreatUtils.getInstance(this, baseDao).setRegisteredCard(intent, registeredCard);
|
}
|
if (cleanUserCard != null) {
|
cleanUserCardFlag = NFCWreatUtils.getInstance(this, baseDao).setCleanUserCard(intent, cleanUserCard);
|
}
|
if (domainCard != null) {
|
domainCrdFlag = NFCWreatUtils.getInstance(this, baseDao).setDomainCard(intent, domainCard);
|
}
|
if (configureDeviceRegistrationCrad != null) {
|
configDeviceRegiestFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad);
|
}
|
if (configurationPowerCard != null) {
|
configPowerFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigurationPower(intent, configurationPowerCard);
|
}
|
if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || domainCrdFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) {
|
try {
|
if (!TextUtils.isEmpty(morny)) {
|
TipUtil.show(NFCWreatActivity.this, "充值成功", () -> NFCWreatActivity.this.finish());
|
} else {
|
TipUtil.show(NFCWreatActivity.this, "写卡成功", () -> NFCWreatActivity.this.finish());
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
CrashReport.postCatchedException(e);
|
}
|
} else {
|
TipUtil.show(NFCWreatActivity.this, "写卡失败");
|
}
|
stopAnim();
|
} else if (userCard == null && userCardBean != null) {
|
//补卡逻辑
|
|
} else {
|
stopAnim();
|
TipUtil.show(this, "参数错误");
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
CrashReport.postCatchedException(e);
|
}
|
}
|
|
@Override
|
public void onNewIntent(Intent intent) {
|
super.onNewIntent(intent);
|
try {
|
this.intent = intent;
|
if (isUser) {
|
//新卡注册逻辑
|
checkHasUser();
|
} else if (isRecharge) {
|
//充值逻辑
|
rechargeWreatCard();
|
} else if (!TextUtils.isEmpty(iccardInfoId)) {
|
//补卡逻辑
|
replaceCard();
|
} else {
|
//其他管理卡逻辑
|
saveData();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
CrashReport.postCatchedException(e);
|
}
|
}
|
|
|
void startAnim() {
|
binding.avi.show();
|
// or avi.smoothToShow();
|
}
|
|
void stopAnim() {
|
binding.avi.hide();
|
// or avi.smoothToHide();
|
}
|
|
|
//往卡内写充值后的数据
|
private void rechargeWreatCard() {
|
try {
|
String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber();
|
//判断是否充值的是一个卡
|
if (cardNumberThis.equalsIgnoreCase(rechargeBean.getCardNumber())) {
|
userCard.setRechargeDate(Calendar.getInstance());
|
if (WriteCardUtils.setUser(intent, userCard, this)) {
|
confromRecharge(rechargeBean.getOrderId(), 0);
|
} else {
|
TipUtil.show(NFCWreatActivity.this, "写卡失败,请重新再试");
|
}
|
} else {
|
TipUtil.show(NFCWreatActivity.this, "读取的卡和充值的卡不一致");
|
}
|
} catch (Exception e) {
|
TipUtil.show(NFCWreatActivity.this, "读取错误,请重试");
|
}
|
}
|
|
private void startDetailActivity(String statu) {
|
Intent detail = new Intent(this, RechargeDetailActivity.class);
|
detail.putExtra("statu", statu);
|
detail.putExtra("userCard", userCard);
|
if (!TextUtils.isEmpty(morny)) {
|
|
detail.putExtra("rechargeBean", rechargeBean);
|
} else {
|
detail.putExtra("userCardBean", userCardBean);
|
}
|
startActivity(detail);
|
if (NewCardActivity.newCardActivity != null) {
|
NewCardActivity.newCardActivity.finish();
|
}
|
if (RechargeActivity.rechargeActivity != null) {
|
RechargeActivity.rechargeActivity.finish();
|
}
|
NFCWreatActivity.nfcWreatActivity.finish();
|
}
|
|
|
protected void onDestroy() {
|
super.onDestroy();
|
nfcWreatActivity = null;
|
}
|
|
/**
|
* 点击返回时提示用户还未写卡
|
*
|
* @param keyCode
|
* @param event
|
* @return
|
*/
|
@Override
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
back();
|
return true;
|
}
|
return super.onKeyDown(keyCode, event);
|
}
|
|
private void back() {
|
confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> {
|
confirmDialog.dismiss();
|
if (NewCardActivity.newCardActivity != null) {
|
NewCardActivity.newCardActivity.finish();
|
}
|
if (RechargeActivity.rechargeActivity != null) {
|
RechargeActivity.rechargeActivity.finish();
|
}
|
NFCWreatActivity.nfcWreatActivity.finish();
|
});
|
confirmDialog.show();
|
}
|
|
private void titleBack() {
|
titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
back();
|
}
|
});
|
}
|
|
/**
|
* IC开卡接口
|
*
|
* @param iccardNum 物理卡号
|
* @param iccardType ic卡类型 1 用户卡 2 管理卡
|
* @param peasantId
|
* @param rechargeMoney
|
*/
|
private void openCard(String iccardNum, int iccardType, String peasantId, String rechargeMoney) {
|
Map<String, Object> data = new HashMap<>();
|
data.put("iccardNum", iccardNum);//物理卡号
|
data.put("iccardType", iccardType);
|
data.put("peasantId", peasantId);
|
data.put("adcd", QHOnLineApplication.getInstance().adcd);
|
//工本费
|
data.put("rechargeCardMoney", rechargeMoney);
|
ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/openCard", OpenCardResult.class, data, new SubscriberListener<BaseResponse<OpenCardResult>>() {
|
@Override
|
public void onNext(BaseResponse<OpenCardResult> t) {
|
if (t.isSuccess()) {
|
String userCode = t.getData().getIccardCode();
|
userCard.setUserCode(userCode.substring(0, 12));
|
userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16)));
|
userCardBean.setCardNumber(cardNumber);
|
userCardBean.setUserCode(userCode);
|
baseDao.userCardDao().insert(userCardBean);
|
if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) {
|
confromOpenCard(t.getData().getIccardRechargeRecordId(), 0);
|
} else {
|
confromOpenCard(t.getData().getIccardRechargeRecordId(), 2);
|
}
|
} else {
|
TipUtil.show(t.getMsg());
|
}
|
}
|
});
|
|
}
|
|
/**
|
* 确认开卡写卡
|
*
|
* @param iccardRechargeRecordId
|
* @param writeCardStatus
|
*/
|
private void confromOpenCard(String iccardRechargeRecordId, int writeCardStatus) {
|
Map<String, Object> data = new HashMap<>();
|
data.put("iccardRechargeRecordId", iccardRechargeRecordId);
|
//写卡状态 0 写卡成功 1 待写卡 2 写卡失败
|
data.put("writeCardStatus", writeCardStatus);
|
|
|
ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/openCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
|
@Override
|
public void onNext(BaseResponse<LoginResult> t) {
|
if (t.isSuccess()) {
|
//{"code":"0","msg":"操作成功","data":{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-05 17:04:15","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820385315354320898","iccardProtocolName":"","totalRechargeElectricAmount":0.00,"logicState":1,"username":"","state":1,"familySize":"","yearRechargeMoney":0.00,"thisSaleAmount":"","onlyRechargeMoney":"","identityCard":"","iccardBrand":"","iccardBalanceMoney":0.00,"openOperatorUsername":"","adName":"","rechargeWaterAmount":"","openOperatorUserId":"1816297106145103873","lastSwipeTime":"","address":"","yearCompensateMoney":0.00,"iccardProtocolOpenMoney":"","peasantId":"1820374742679953410","reissueTimes":0,"iccardProtocolReissueMoney":"","iccardProtocolId":"","yearRechargeWaterAmount":0.00,"iccardBalanceElectric":0.00,"iccardStatus":0,"phone":"","lastRechargeMoney":0.00,"iccardOpenTime":"","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"BADA4044"}}
|
startDetailActivity("终端写卡");
|
}
|
}
|
});
|
|
}
|
|
/**
|
* 确认充值回调
|
*
|
* @param iccardRechargeRecordId
|
* @param writeCardStatus
|
*/
|
private void confromRecharge(String iccardRechargeRecordId, int writeCardStatus) {
|
Map<String, Object> data = new HashMap<>();
|
data.put("iccardRechargeRecordId", iccardRechargeRecordId);
|
//写卡状态 0 写卡成功 1 待写卡 2 写卡失败
|
data.put("writeCardStatus", writeCardStatus);
|
data.put("writeCardStatus", writeCardStatus);
|
|
ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/rechargeCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
|
@Override
|
public void onNext(BaseResponse<LoginResult> t) {
|
if (t.isSuccess()) {
|
|
try {
|
baseDao.rechargeDao().insert(rechargeBean);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
// 打印相关
|
PrintUtils.printerData(rechargeBean);
|
startDetailActivity("终端写卡");
|
} else {
|
ToastUtil.show(t.getMsg());
|
}
|
}
|
});
|
}
|
|
/**
|
* 补卡逻辑
|
*/
|
private void replaceCard() {
|
cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber();
|
if (replaceType == BaseCommon.REPLACE_NO_CARD) {
|
replaceCardPost("", "");
|
} else if (replaceType == BaseCommon.REPLACE_HAS_CARD) {
|
managerToUserCard = NfcReadHelper.getInstence(intent, NFCWreatActivity.this).getManagerToUserCardData();
|
//判断是否已经在控制器端刷卡
|
if (managerToUserCard.getCardWriteState() == 1) {
|
replaceCardPost(MornyUtil.changeF2Y(managerToUserCard.getBalance()), MornyUtil.changeF2Y(managerToUserCard.getSurplusElecticity()));
|
} else {
|
TipUtil.show("请在控制器端刷卡");
|
}
|
}
|
}
|
|
/**
|
* 补卡
|
*/
|
private void replaceCardPost(String iccardBalanceMoney, String iccardBalanceElectric) {
|
Map<String, Object> data = new HashMap<>();
|
data.put("equipCode", DeviceUtils.getSN());
|
//充值卡费
|
data.put("rechargeCardMoney", rechargeCardMoney);
|
// 旧卡的id
|
data.put("iccardInfoId", iccardInfoId);
|
//新卡的物理卡号
|
data.put("iccardNum", cardNumber);
|
if (!TextUtils.isEmpty(iccardBalanceMoney)) {
|
//卡内剩余金额
|
data.put("iccardBalanceMoney", iccardBalanceMoney);
|
}
|
if (!TextUtils.isEmpty(iccardBalanceElectric)) {
|
//卡内剩余电量
|
data.put("iccardBalanceElectric", iccardBalanceElectric);
|
}
|
ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reissueOpenCard", ReplaceCardResult.class, data, new SubscriberListener<BaseResponse<ReplaceCardResult>>() {
|
@Override
|
public void onNext(BaseResponse<ReplaceCardResult> t) {
|
if (t.isSuccess()) {
|
ReplaceCardResult replaceCardResult = t.getData();
|
userCard = new UserCard();
|
userCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber));
|
String userCode = t.getData().getIccardCode();
|
userCard.setUserCode(userCode.substring(0, 12));
|
userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16)));
|
userCard.setCardWriteState(0);
|
userCard.setCardState(1);
|
userCard.setBalance(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceMoney()));
|
userCard.setSurplusElecticity(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceElectric()));
|
userCard.setTotalMorny(MornyUtil.changeY2F(replaceCardResult.getTotalRechargeMoney()));
|
userCard.setRechargeDate(Calendar.getInstance());
|
userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
|
if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) {
|
userCardBean.setCardNumber(cardNumber);
|
userCardBean.setUserCode(userCode);
|
userCardBean.setDate(System.currentTimeMillis());
|
baseDao.userCardDao().insert(userCardBean);
|
confromReplaceCard(replaceCardResult.getIccardRechargeRecordId(), 0);
|
} else {
|
TipUtil.show(NFCWreatActivity.this, "写卡失败,请重试");
|
}
|
// 打印相关
|
// setPrinterData(rechargeBean);
|
// startDetailActivity(rechargeBean.getUserName(), "终端写卡");
|
} else {
|
ToastUtil.show(t.getMsg());
|
}
|
}
|
});
|
}
|
|
/**
|
* 确认补卡写卡成功
|
*
|
* @param iccardRechargeRecordId
|
* @param writeCardStatus
|
*/
|
private void confromReplaceCard(String iccardRechargeRecordId, int writeCardStatus) {
|
Map<String, Object> data = new HashMap<>();
|
data.put("equipCode", DeviceUtils.getSN());
|
data.put("iccardRechargeRecordId", iccardRechargeRecordId);
|
//写卡状态 0 写卡成功 1 待写卡 2 写卡失败
|
data.put("writeCardStatus", writeCardStatus);
|
|
ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reissueOpenCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
|
@Override
|
public void onNext(BaseResponse<LoginResult> t) {
|
if (t.isSuccess()) {
|
TipUtil.show(NFCWreatActivity.this, "补卡成功!", () -> {
|
if (UserSearchActivity.userSearchActivity != null) {
|
UserSearchActivity.userSearchActivity.finish();
|
UserSearchActivity.userSearchActivity = null;
|
}
|
NFCWreatActivity.this.finish();
|
});
|
}
|
}
|
});
|
}
|
|
|
}
|