左晓为主开发手持机充值管理机
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java
@@ -4,13 +4,18 @@
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.MornyUtil;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.baselibrary.view.ConfirmDialog;
import com.dayu.baselibrary.view.TitleBar;
import com.dayu.qihealonelibrary.QHAloneApplication;
import com.dayu.qihealonelibrary.card.CleanCard;
import com.dayu.qihealonelibrary.card.CleanUserCard;
@@ -105,6 +110,7 @@
    //当前卡的物理卡号
    String cardNumber;
    ConfirmDialog confirmDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -114,6 +120,7 @@
            setContentView(binding.getRoot());
            nfcWreatActivity = this;
            getData();
            titleBack();
            baseApp = QHAloneApplication.getInstance();
        } catch (Exception e) {
            e.printStackTrace();
@@ -141,11 +148,15 @@
                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");
                }
                binding.cardData.setText("制作管理卡(请将管理卡贴在设备上)\n用户卡号:" + manageCard.getUserCard());
                //显示的时候要反过来
                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");
@@ -213,6 +224,8 @@
            String[] cardTypes = cardType.split(",");
            if (cardTypes != null && cardTypes.length == 2) {
                cardNumber = cardType.split(",")[0];
                cardNumber = HexUtil.spaceHex(cardNumber);
                cardNumber = HexUtil.HighLowHex(cardNumber);
                cardType = cardType.split(",")[1];
            }
            Log.i("NFCWreatActivity", "cardType=" + cardType);
@@ -266,8 +279,8 @@
                if (manageCard != null) {
                    setmanageCard(intent, manageCard);
                    if (manageCardFlag && userCardBeanByManager != null) {
                        //修改用户表信息
                        userCardBeanByManager.setCardNumber(manageCard.getUserCard());
                        //修改用户表信息修改成新卡卡号
                        userCardBeanByManager.setCardNumber(cardNumber);
                        baseDao.userCardDao().update(userCardBeanByManager);
                    }
                }
@@ -355,12 +368,14 @@
            StringBuffer data = new StringBuffer();
            if (rechargeBean != null) {
                data.append("*****************************" + "\n");
                data.append(getResources().getString(com.dayu.baselibrary.R.string.login_title) + "\n");
                data.append("           大禹节水\n       智能充值管理系统" + "\n");
                data.append("设备序列号:" + rechargeBean.getSerial() + "\n");
                data.append("用户名:" + rechargeBean.getUserName() + "\n");
                data.append("卡  号:" + rechargeBean.getCardNumber() + "\n");
                data.append("充值金额:" + rechargeBean.getMorny() + "元" + "\n");
                data.append("卡内余额:" + rechargeBean.getBalance() + "元" + "\n");
//                data.append("卡内余额:" + rechargeBean.getBalance() + " 元" + "\n");
                data.append("充值水量:" + rechargeBean.getRechargeWater() + " 吨" + "\n");
                data.append("剩余水量:" + rechargeBean.getSurplusWater() + " 吨" + "\n");
                data.append("日  期:" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2) + "\n\n");
                data.append("*****************************");
            }
@@ -392,7 +407,10 @@
    //往卡内写充值后的数据
    private void rechargeWreatCard() {
        try {
        String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber();
            cardNumberThis = HexUtil.spaceHex(cardNumberThis);
            cardNumberThis = HexUtil.HighLowHex(cardNumberThis);
        //判断是否充值的是一个卡
        if (cardNumberThis.equalsIgnoreCase(cardNumber)) {
            //余额
@@ -433,6 +451,9 @@
            }
        } else {
            TipUtil.show(NFCWreatActivity.this, "读取的卡和充值的卡不一致");
            }
        } catch (Exception e) {
            TipUtil.show(NFCWreatActivity.this, "读取错误,请重试");
        }
    }
@@ -570,4 +591,43 @@
        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();
            }
        });
    }
}