左晓为主开发手持机充值管理机
zuoxiao
2024-03-26 ebc06a3ae3a42bd6ac1359a59c55d5e6f1a0e2f0
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -5,6 +5,7 @@
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 android.widget.Toast;
@@ -42,7 +43,9 @@
import com.dayu.recharge.utils.MyCommon;
import com.dayu.recharge.utils.SocketUtil;
import com.dayu.recharge.utils.TipUtil;
import com.dayu.recharge.view.ConfirmDialog;
import com.dayu.recharge.view.ProgressDialog;
import com.dayu.recharge.view.TitleBar;
import com.tencent.bugly.crashreport.CrashReport;
import java.util.Arrays;
@@ -71,6 +74,11 @@
    boolean configDeviceRegiestFlag = false;
    boolean configPowerFlag = false;
    /**
     * 是否不再验证用户直接写卡
     */
    boolean isAgainWrite = false;
    UserCardBean userCardBean;
@@ -105,6 +113,7 @@
    //充值通信是否完成
    boolean rechargeIsOk = false;
    ActivityWriteTextBinding binding;
    ConfirmDialog confirmDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -113,12 +122,61 @@
            binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
            setContentView(binding.getRoot());
            nfcWreatActivity = this;
            setData();
            getData();
            baseApp = (MyApplication) getApplication();
        } catch (Exception e) {
            e.printStackTrace();
            CrashReport.postCatchedException(e);
        }
    }
    private void setData() {
        titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, v -> {
            //处理因用户误操作返回导致不能写卡的问题,添加二次确认
            back();
        });
    }
    private void back() {
        if (isUser) {
            confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> {
                confirmDialog.dismiss();
                myFinish();
            });
            confirmDialog.show();
        } else if (!TextUtils.isEmpty(morny)) {
            confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> {
                confirmDialog.dismiss();
                myFinish();
            });
            confirmDialog.show();
        } else {
            finish();
        }
    }
    private void myFinish() {
        if (NewCardActivity.newCardActivity != null) {
            NewCardActivity.newCardActivity.finish();
        }
        if (RechargeActivity.rechargeActivity != null) {
            RechargeActivity.rechargeActivity.finish();
        }
        NFCWreatActivity.nfcWreatActivity.finish();
    }
    //点击两次退出程序 有时间间隔 间隔内点击则退出程序 否则 则提示
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            back();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
@@ -201,6 +259,8 @@
            binding.textView.setTextColor(getResources().getColor(R.color.red));
        } else if (cardType.equals("-1")) {
            TipUtil.show(NFCWreatActivity.this, "请勿移动卡片,读卡失败请重试!!");
        } else if (cardType.equals("-2")) {
            TipUtil.show(NFCWreatActivity.this, "读卡失败,请检查卡是否是用户卡");
        } else {
            Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
            saveData();
@@ -219,7 +279,6 @@
                    || configureDeviceRegistrationCrad != null
                    || configurationPowerCard != null) {
                if (userCard != null && TextUtils.isEmpty(morny)) {
                    userFlag = WriteCardUtils.setUser(intent, userCard, this);
                }
                if (cleanCard != null) {
@@ -360,7 +419,7 @@
            rechargeRequestBean.setBalance(morny);
            rechargeRequestBean.setOrderId(SocketUtil.getOrderId(NFCWreatActivity.this));
            SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(), new SocketCallBack() {
            SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(),"95", new SocketCallBack() {
                @Override
                public void onSocketResponse(SocketData readData) {
@@ -437,7 +496,7 @@
        UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData();
        if (userCardold != null) {
            //判断是否充值的是一个卡
            if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) {
            if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode()) || isAgainWrite) {
                userCard.setState("00");
                userFlag = WriteCardUtils.setUser(intent, userCard, this);
                //   打印相关
@@ -445,12 +504,14 @@
                    setPrinterData(rechargeBean);
                    startDetailActivity(userName, "启用");
                } else {
                    TipUtil.show(NFCWreatActivity.this, "写卡失败,请重新再试");
                    isAgainWrite = true;
                    TipUtil.show(NFCWreatActivity.this, "写卡失败,请重新贴卡");
                }
            } else {
                TipUtil.show(NFCWreatActivity.this, "读取的卡和充值的卡不一致");
            }
        }
        stopAnim();
    }
    private void setmanageCard(Intent intent, final ManageCard manageCard) {
@@ -539,13 +600,7 @@
            detail.putExtra("morny", morny);
        }
        startActivity(detail);
        if (NewCardActivity.newCardActivity != null) {
            NewCardActivity.newCardActivity.finish();
        }
        if (RechargeActivity.rechargeActivity != null) {
            RechargeActivity.rechargeActivity.finish();
        }
        NFCWreatActivity.nfcWreatActivity.finish();
        myFinish();
    }
    /**
@@ -564,7 +619,7 @@
            requestBean.setInitCode(initCode);
            requestBean.setInitPeasantCode(initPeasantCode);
            requestBean.setXuLie(SocketUtil.getXuLie(this));
            SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() {
            SocketNet.getInstance().sendTestMessage(requestBean.pack(), "94",new SocketCallBack() {
                @Override
                public void onSocketResponse(SocketData readData) {
                    if (CRC8.isCRC8(readData.getOriginDataBytes())) {
@@ -602,12 +657,7 @@
                                //补卡逻辑
                                userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
                                if (userFlag) {
                                    TipUtil.show(NFCWreatActivity.this, "补卡成功", new TipUtil.TipListener() {
                                        @Override
                                        public void onCancle() {
                                            NFCWreatActivity.this.finish();
                                        }
                                    });
                                    TipUtil.show(NFCWreatActivity.this, "补卡成功", () -> NFCWreatActivity.this.finish());
                                }
                                return;
                            } else if ("01".equals(state)) {
@@ -642,7 +692,6 @@
                @Override
                public void onSocketError(int code, String msg) {
                    stopAnim();
                    TipUtil.show(NFCWreatActivity.this, msg);
                }
            });
@@ -657,6 +706,7 @@
    protected void onDestroy() {
        super.onDestroy();
        ProgressDialog.dismiss();
        nfcWreatActivity = null;
    }
}