左晓为主开发手持机充值管理机
1.隐藏一些不需要的信息
2.将卡号倒序显示,但是制作管理卡时正序写入。
19个文件已修改
324 ■■■■■ 已修改文件
baselibrary/src/main/res/values/strings.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivity.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivity.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/RechargeAdapter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/ManageCard.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/AdminCardDialog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_admin_qha.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_my_qha.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_recharge_detail_qha.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_recharge_qha.xml 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/activity_red_card_qha.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/res/layout/qihe_item_recharge.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/res/values/strings.xml
@@ -27,7 +27,7 @@
    <string name="select_time">选择时间</string>
    <string name="current_time">当前时间</string>
    <string name="login_title">大禹节水\n智能充值管理系统</string>
    <string name="login_title">        大禹节水\n      智能充值管理系统</string>
    <string name="company_name">大禹节水科技研究有限公司</string>
    <string name="eq_no">区域号:</string>
    <string name="address_code">区域号:</string>
henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
@@ -121,6 +121,7 @@
            setContentView(binding.getRoot());
            nfcWreatActivity = this;
            setData();
            titleBack();
            getData();
        } catch (Exception e) {
            e.printStackTrace();
@@ -258,7 +259,7 @@
            TipUtil.show(NFCWreatActivity.this, "请勿移动卡片,读卡失败请重试!!");
        } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) {
            TipUtil.show(NFCWreatActivity.this, ",卡片未能识别,请检查卡片是否是本公司卡片");
        }  else {
        } else {
            Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
            saveData();
        }
@@ -641,7 +642,7 @@
                                    //默认是1元
                                    userCard.setElectricityPrice(1.000f);
                                }
                                userCard.setSwipeNumber( 0);
                                userCard.setSwipeNumber(0);
                                userCard.setState("00");
                                userCard.setBalance(0);
                                userCard.setAddressCode(adminData.getAddressCode());
@@ -716,4 +717,13 @@
        ProgressDialog.dismiss();
        nfcWreatActivity = null;
    }
    private void titleBack() {
        titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                back();
            }
        });
    }
}
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivity.java
@@ -49,7 +49,6 @@
            if (view != null && view instanceof TitleBar) {
                titleBar = (TitleBar) view;
                titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        finish();
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivity.java
@@ -42,7 +42,7 @@
                if (adminData != null) {
                    startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
                } else {
                    TipUtil.show("请先在个人中心内设置区域号");
                    TipUtil.show(HomeActivity.this, "请先在个人中心内设置区域号");
                }
            }
@@ -52,10 +52,10 @@
            public void onClick(View v) {
                AdminDataBean adminData = baseDao.adminDao().findFirst();
                if (adminData != null) {
                    if (adminData.getWaterPrice()!=0){
                    if (adminData.getWaterPrice() != 0) {
                        startActivity(new Intent(HomeActivity.this, RechargeActivity.class));
                    }else {
                        TipUtil.show(HomeActivity.this,"请先在个人中心内设置水价");
                    } else {
                        TipUtil.show(HomeActivity.this, "请先在个人中心内设置水价");
                    }
                } else {
                    TipUtil.show("请先在个人中心内设置区域号");
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivity.java
@@ -9,6 +9,7 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.baselibrary.view.EdtDialog;
import com.dayu.qihealonelibrary.adapter.ManagerCardAdapter;
@@ -60,9 +61,13 @@
    public void itemClick(View view) {
        UserCardBean userCardBean = userCardBeanList.get((int) view.getTag());
        ManageCard manageCard = new ManageCard();
        manageCard.setUserCard(cardNumber);
        String hex = userCardBean.getCardNumber();
        hex = HexUtil.spaceHex(hex);
        hex = HexUtil.HighLowHex(hex);
        manageCard.setUserCard(hex);
        Intent intent = new Intent(ManagerListActivity.this, NFCWreatActivity.class);
        intent.putExtra("manageCard", manageCard);
        intent.putExtra("cardNumber", cardNumber);
        intent.putExtra("userCardBean_manager", userCardBean);
        startActivity(intent);
        this.finish();
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.getMorny() + " 元" + "\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,47 +407,53 @@
    //往卡内写充值后的数据
    private void rechargeWreatCard() {
        String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber();
        //判断是否充值的是一个卡
        if (cardNumberThis.equalsIgnoreCase(cardNumber)) {
            //余额
            int balance = userCard.getBalance() + MornyUtil.changeY2F(morny);
            userCard.setBalance(balance);
            //剩余水量
            int surplusWater = userCard.getSurplusWater() + MornyUtil.changeY2F(rechageWater);
            userCard.setSurplusWater(surplusWater);
        try {
            String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber();
            cardNumberThis = HexUtil.spaceHex(cardNumberThis);
            cardNumberThis = HexUtil.HighLowHex(cardNumberThis);
            //判断是否充值的是一个卡
            if (cardNumberThis.equalsIgnoreCase(cardNumber)) {
                //余额
                int balance = userCard.getBalance() + MornyUtil.changeY2F(morny);
                userCard.setBalance(balance);
                //剩余水量
                int surplusWater = userCard.getSurplusWater() + MornyUtil.changeY2F(rechageWater);
                userCard.setSurplusWater(surplusWater);
            int rechageTims = userCard.getRechargeTimes() + 1;
            if (rechageTims == 256) {
                rechageTims = 0;
            }
            userCard.setRechargeTimes((short) rechageTims);
            userCard.setRechargeDate(Calendar.getInstance());
            userFlag = WriteCardUtils.setUser(intent, userCard, this);
            if (userFlag) {
                rechargeBean = new RechargeBean();
                rechargeBean.setUserName(userName);
                rechargeBean.setSerial(userCardBean.getSerial());
                rechargeBean.setUserId(userCardBean.getUserID());
                rechargeBean.setDate(System.currentTimeMillis());
                rechargeBean.setMorny(morny);
                rechargeBean.setBalance(MornyUtil.changeF2Y(balance));
                rechargeBean.setCardNumber(cardNumber);
                rechargeBean.setSurplusWater(MornyUtil.changeF2Y(surplusWater));
                rechargeBean.setRechargeWater(rechageWater);
                try {
                    baseDao.rechargeDao().insert(rechargeBean);
                } catch (Exception e) {
                    e.printStackTrace();
                int rechageTims = userCard.getRechargeTimes() + 1;
                if (rechageTims == 256) {
                    rechageTims = 0;
                }
                //   打印相关
                setPrinterData(rechargeBean);
                startDetailActivity(userName, "终端写卡");
                userCard.setRechargeTimes((short) rechageTims);
                userCard.setRechargeDate(Calendar.getInstance());
                userFlag = WriteCardUtils.setUser(intent, userCard, this);
                if (userFlag) {
                    rechargeBean = new RechargeBean();
                    rechargeBean.setUserName(userName);
                    rechargeBean.setSerial(userCardBean.getSerial());
                    rechargeBean.setUserId(userCardBean.getUserID());
                    rechargeBean.setDate(System.currentTimeMillis());
                    rechargeBean.setMorny(morny);
                    rechargeBean.setBalance(MornyUtil.changeF2Y(balance));
                    rechargeBean.setCardNumber(cardNumber);
                    rechargeBean.setSurplusWater(MornyUtil.changeF2Y(surplusWater));
                    rechargeBean.setRechargeWater(rechageWater);
                    try {
                        baseDao.rechargeDao().insert(rechargeBean);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    //   打印相关
                    setPrinterData(rechargeBean);
                    startDetailActivity(userName, "终端写卡");
                } else {
                    TipUtil.show(NFCWreatActivity.this, "写卡失败,请重新再试");
                }
            } else {
                TipUtil.show(NFCWreatActivity.this, "写卡失败,请重新再试");
                TipUtil.show(NFCWreatActivity.this, "读取的卡和充值的卡不一致");
            }
        } 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();
            }
        });
    }
}
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
@@ -14,6 +14,7 @@
import com.dayu.qihealonelibrary.card.ConfigurationPowerCard;
import com.dayu.qihealonelibrary.card.DomainCard;
import com.dayu.qihealonelibrary.card.ElectricPriceCard;
import com.dayu.qihealonelibrary.card.ManageCard;
import com.dayu.qihealonelibrary.card.RegionCard;
import com.dayu.qihealonelibrary.card.UserCard;
import com.dayu.qihealonelibrary.databinding.ActivityRedCardQhaBinding;
@@ -62,11 +63,11 @@
                redCardBinding.redRechargeDate.setText("本卡最后购水日期:无");
            }
            redCardBinding.redInitCode.setText(cardNumber);
            redCardBinding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + " 次");
            redCardBinding.redTotalWater.setText("总用水量:" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 吨");
            redCardBinding.redTotalPower.setText("总用电量:" +  MornyUtil.changeF2Y(userCard.getTotalElectric())+" 度");
            redCardBinding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(userCard.getBalance()) + " 元");
            redCardBinding.redRemainderWater.setText("剩余水量:" + MornyUtil.changeF2Y(userCard.getSurplusWater())+" 吨");
//            redCardBinding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + " 次");
//            redCardBinding.redTotalWater.setText("总用水量:" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 吨");
//            redCardBinding.redTotalPower.setText("总用电量:" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 度");
//            redCardBinding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(userCard.getBalance()) + " 元");
            redCardBinding.redRemainderWater.setText("剩余水量:" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 吨");
        }
    }
@@ -93,6 +94,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];
        }
        List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData();
@@ -128,8 +131,13 @@
                break;
            case CardCommon.MANAGE_CRAD:
                ManageCard manageCard = ManageCard.getBean(data);
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为管理卡");
                String hex = manageCard.getUserCard().toUpperCase();
                hex = HexUtil.spaceHex(hex);
                hex = HexUtil.HighLowHex(hex);
                redCardBinding.readCardTypeTV.setText("当前为管理卡" + "\n\n"
                        + "原始卡号:" + hex);
                break;
            case CardCommon.CLEAN_CARD_TYPE:
                viweGone(false);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java
@@ -1,5 +1,6 @@
package com.dayu.qihealonelibrary.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
@@ -9,8 +10,10 @@
import android.view.View;
import android.widget.EditText;
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.MornyUtil;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.qihealonelibrary.R;
import com.dayu.qihealonelibrary.card.UserCard;
import com.dayu.qihealonelibrary.databinding.ActivityRechargeQhaBinding;
import com.dayu.qihealonelibrary.dbBean.AdminDataBean;
@@ -79,6 +82,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];
        }
        List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData();
@@ -95,18 +100,20 @@
    }
    @SuppressLint("ResourceAsColor")
    private void setUserData(String cardType, String cardNumber, List<byte[]> data) {
        String state = "";
        if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
            state = "终端写卡";
            binding.rechargeTextLL.setVisibility(View.VISIBLE);
            binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
            binding.redStatu.setTextColor(R.color.black);
        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
            state = "刷卡开泵后,当前状态不能充值";
            binding.rechargeLL.setVisibility(View.GONE);
            binding.rechargeRegistBtn.setVisibility(View.GONE);
            binding.redStatu.setTextColor(com.dayu.baselibrary.R.color.red);
        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
            state = "叠加充值";
            binding.rechargeLL.setVisibility(View.GONE);
@@ -115,6 +122,8 @@
            TipUtil.show(this, "非用户卡,不能充值");
            return;
        }
        userCard = UserCard.getBean(data);
        List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
        AdminDataBean adminDataBean = baseDao.adminDao().findFirst();
@@ -134,8 +143,8 @@
                userCardBean.setSerial(String.valueOf(userCard.getArerNumber()));
                this.userName = "未知用户";
            }
            binding.rechargeReadLL.setVisibility(View.GONE);
            binding.rechargeTextLL.setVisibility(View.VISIBLE);
            binding.userName.setText(userName);
            binding.redStatu.setText(state);
            if (userCard != null) {
@@ -149,10 +158,10 @@
                    binding.redRechargeDate.setText("本卡最后购水日期:无");
                }
                binding.redInitCode.setText(cardNumber);
                binding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + " 次");
                binding.redTotalWater.setText("总用水量:" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 吨");
                binding.redTotalPower.setText("总用电量:" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 度");
                binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 元");
//                binding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + " 次");
//                binding.redTotalWater.setText("总用水量:" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 吨");
//                binding.redTotalPower.setText("总用电量:" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 度");
//                binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 元");
                binding.redRemainderWater.setText("剩余水量:" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 吨");
                binding.redWaterPrice.setText("每立方米水价格:" + MornyUtil.changeF2Y(adminData.getWaterPrice()) + " 元");
            }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivity.java
@@ -67,7 +67,7 @@
            binding.redRechargeWater.setVisibility(View.GONE);
        }
        binding.redName.setText("用户姓名:" + userName);
        binding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(balance) + " 元");
//        binding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(balance) + " 元");
        binding.redSurplusWater.setText("剩余水量:" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 吨");
        binding.redStatu.setText("卡状态:" + statu);
        if (userCard != null) {
@@ -83,7 +83,7 @@
                binding.redRechargeDate.setText("本卡最后购水日期:无");
            }
            binding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + "");
//            binding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + "");
        }
    }
}
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/RechargeAdapter.java
@@ -56,7 +56,7 @@
                ((ViewHolder) holder).getBinding().userNo.setText("卡号:" + rechargeList.get(position).getCardNumber());
                ((ViewHolder) holder).getBinding().morny.setText("充值金额:" + rechargeList.get(position).getMorny() + " 元");
                ((ViewHolder) holder).getBinding().rachagerWater.setText("充值水量:" + rechargeList.get(position).getRechargeWater() + " 吨");
                ((ViewHolder) holder).getBinding().balance.setText("余额:" + rechargeList.get(position).getBalance() + " 元");
//                ((ViewHolder) holder).getBinding().balance.setText("余额:" + rechargeList.get(position).getBalance() + " 元");
                ((ViewHolder) holder).getBinding().surplusWater.setText("剩余水量:" + rechargeList.get(position).getSurplusWater()  + " 吨");
                ((ViewHolder) holder).getBinding().date.setText("日期:" + DateUtil.dateToStamp(rechargeList.get(position).getDate(), DateUtil.type1));
            }
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/ManageCard.java
@@ -5,6 +5,7 @@
import com.dayu.qihealonelibrary.utils.CardCommon;
import java.io.Serializable;
import java.util.List;
/**
 * Copyright (C), 2023,
@@ -33,6 +34,22 @@
        this.userCard = userCard;
    }
    public static ManageCard getBean(List<byte[]> data) {
        if (data != null) {
            ManageCard passWordCard = new ManageCard();
            byte[] zero = data.get(0);
            byte[] passWordByte = new byte[4];
            System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length);
            passWordCard.setUserCard(HexUtil.bytesToHex(passWordByte));
            return passWordCard;
        }
        return null;
    }
    public byte[] toByte(QHAloneAppDatabase QHAloneAppDatabase) {
        setCardData(QHAloneAppDatabase, cardType);
        Zero zero = new Zero();
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java
@@ -135,8 +135,8 @@
                    byte[] data = mfc.readBlock(bIndex + 0);
                    if (data != null && data.length > 0) {
                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
                        hex = HexUtil.spaceHex(hex);
                        hex = HexUtil.HighLowHex(hex);
//                        hex = HexUtil.spaceHex(hex);
//                        hex = HexUtil.HighLowHex(hex);
                        Log.i("NFCWreatActivity", "hex===" + hex);
                        return hex.toUpperCase();
                    }
@@ -178,8 +178,6 @@
                    byte[] data = mfc.readBlock(bIndex + 0);
                    if (data != null && data.length > 0) {
                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
                        hex = HexUtil.spaceHex(hex);
                        hex = HexUtil.HighLowHex(hex);
                        strData.append(hex);
                        strData.append(",");
                        Log.i("NFCWreatActivity", "hex===" + hex);
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/AdminCardDialog.java
@@ -69,7 +69,7 @@
                    mContext.startActivity(intent);
                    AdminCardDialog.this.dismiss();
                } else {
                    edtDialog = new EdtDialog(mContext, "请输入16进制的用户卡号", new EdtDialog.DialogBack() {
                    edtDialog = new EdtDialog(mContext, "请输入8个字符的16进制的用户卡号", new EdtDialog.DialogBack() {
                        @Override
                        public void onOk(String data) {
                            if (!TextUtils.isEmpty(data) && data.length() == 8) {
qihealonelibrary/src/main/res/layout/activity_admin_qha.xml
@@ -51,6 +51,7 @@
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:visibility="gone"
                android:layout_marginTop="20dp"
                android:padding="5dp"
                android:text="制作密码卡"
qihealonelibrary/src/main/res/layout/activity_my_qha.xml
@@ -80,7 +80,7 @@
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="水单价(元/吨):"
                    android:text="水单价(元/吨):"
                    android:textColor="@color/text_selecter"
                    android:textSize="@dimen/text_size" />
qihealonelibrary/src/main/res/layout/activity_recharge_detail_qha.xml
@@ -56,6 +56,7 @@
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:text="剩余金额:"
            android:visibility="gone"
            android:textSize="@dimen/text_size" />
        <TextView
            android:id="@+id/red_surplusWater"
qihealonelibrary/src/main/res/layout/activity_recharge_qha.xml
@@ -48,6 +48,26 @@
        android:padding="20dp"
        android:visibility="gone">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:orientation="horizontal">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="卡状态:"
                android:textSize="@dimen/text_size" />
            <TextView
                android:id="@+id/red_statu"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/red"
                android:textSize="@dimen/new_card_size" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
@@ -93,7 +113,8 @@
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:orientation="horizontal">
            android:orientation="horizontal"
            android:visibility="gone">
            <TextView
@@ -134,7 +155,7 @@
            android:layout_marginTop="15dp"
            android:text="充值次数:"
            android:textSize="@dimen/text_size"
            android:visibility="visible" />
            android:visibility="gone" />
        <TextView
            android:id="@+id/red_total_water"
@@ -143,7 +164,7 @@
            android:layout_marginTop="15dp"
            android:text="总用水量:"
            android:textSize="@dimen/text_size"
            android:visibility="visible" />
            android:visibility="gone" />
        <TextView
            android:id="@+id/red_total_power"
@@ -152,28 +173,9 @@
            android:layout_marginTop="15dp"
            android:text="总用电量:"
            android:textSize="@dimen/text_size"
            android:visibility="visible" />
            android:visibility="gone" />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:orientation="horizontal">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="卡状态:"
                android:textSize="@dimen/text_size" />
            <TextView
                android:id="@+id/red_statu"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="@dimen/new_card_size" />
        </LinearLayout>
        <TextView
            android:id="@+id/red_waterPrice"
            android:layout_width="match_parent"
@@ -182,6 +184,7 @@
            android:text="每立方米水价格:"
            android:textSize="@dimen/text_size"
            android:visibility="visible" />
        <LinearLayout
            android:id="@+id/recharge_LL"
            android:layout_width="match_parent"
qihealonelibrary/src/main/res/layout/activity_red_card_qha.xml
@@ -60,6 +60,7 @@
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:visibility="gone"
                android:text="剩余金额:"
                android:textSize="@dimen/text_size" />
            <TextView
@@ -86,7 +87,7 @@
                android:layout_marginTop="15dp"
                android:text="充值次数:"
                android:textSize="@dimen/text_size"
                android:visibility="visible" />
                android:visibility="gone" />
            <TextView
                android:id="@+id/red_total_water"
@@ -95,7 +96,7 @@
                android:layout_marginTop="15dp"
                android:text="总用水量:"
                android:textSize="@dimen/text_size"
                android:visibility="visible" />
                android:visibility="gone" />
            <TextView
                android:id="@+id/red_total_power"
@@ -104,7 +105,7 @@
                android:layout_marginTop="15dp"
                android:text="总用电量:"
                android:textSize="@dimen/text_size"
                android:visibility="visible" />
                android:visibility="gone" />
            <TextView
                android:id="@+id/red_statu"
qihealonelibrary/src/main/res/layout/qihe_item_recharge.xml
@@ -46,13 +46,13 @@
                android:text="充值水量:"
                android:textSize="14sp" />
            <TextView
                android:id="@+id/balance"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="余额:"
                android:textSize="14sp" />
<!--            <TextView-->
<!--                android:id="@+id/balance"-->
<!--                android:layout_width="match_parent"-->
<!--                android:layout_height="wrap_content"-->
<!--                android:layout_weight="1"-->
<!--                android:text="余额:"-->
<!--                android:textSize="14sp" />-->
            <TextView
                android:id="@+id/surplusWater"
                android:layout_width="match_parent"