From 844597b5813ff8589de503cd7d7b1bbd0586d287 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 13 五月 2024 19:38:03 +0800
Subject: [PATCH] 1.添加水量单价 2.修复发现的bug

---
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java |  251 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 251 insertions(+), 0 deletions(-)

diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java
new file mode 100644
index 0000000..6a0e5c3
--- /dev/null
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java
@@ -0,0 +1,251 @@
+package com.dayu.qihealonelibrary.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.EditText;
+
+import com.dayu.baselibrary.utils.MornyUtil;
+import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.qihealonelibrary.card.UserCard;
+import com.dayu.qihealonelibrary.databinding.ActivityRechargeQhaBinding;
+import com.dayu.qihealonelibrary.dbBean.AdminDataBean;
+import com.dayu.qihealonelibrary.dbBean.UserCardBean;
+import com.dayu.qihealonelibrary.tools.NfcReadHelper;
+import com.dayu.qihealonelibrary.utils.CardCommon;
+import com.dayu.qihealonelibrary.utils.DeviceNumberUtils;
+import com.dayu.qihealonelibrary.view.ProgressDialog;
+import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.Calendar;
+import java.util.List;
+
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-5 09:52
+ * Description: 鍏呭�肩晫闈�
+ */
+public class RechargeActivity extends BaseNfcActivity {
+
+    Intent intent;
+
+    ActivityRechargeQhaBinding binding;
+    public static RechargeActivity rechargeActivity;
+
+    AdminDataBean adminData;
+    String userName;
+    String cardNumber = null;
+    UserCardBean userCardBean;
+    int waterPrice;
+    String rechageWater;//鍏呭�肩殑姘撮噺
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        try {
+            binding = ActivityRechargeQhaBinding.inflate(LayoutInflater.from(this));
+            setContentView(binding.getRoot());
+            setPricePoint(binding.rechargeWater);
+            rechargeActivity = this;
+            waterPrice = baseDao.adminDao().findFirst().getWaterPrice();
+            initView();
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+    }
+
+    public void onNewIntent(Intent intent) {
+        this.intent = intent;
+        try {
+            readAllData();
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+        super.onNewIntent(intent);
+    }
+
+
+    private void readAllData() {
+        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();
+
+        if (!data.isEmpty()) {
+            if (!TextUtils.isEmpty(cardNumber)) {
+                setUserData(cardType, cardNumber, data);
+            } else {
+                TipUtil.show(this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
+            }
+        } else {
+            TipUtil.show(this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+        }
+    }
+
+
+    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);
+        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
+            state = "鍒峰崱寮�娉靛悗,褰撳墠鐘舵�佷笉鑳藉厖鍊�";
+            binding.rechargeLL.setVisibility(View.GONE);
+            binding.rechargeRegistBtn.setVisibility(View.GONE);
+        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
+            state = "鍙犲姞鍏呭��";
+            binding.rechargeLL.setVisibility(View.GONE);
+            binding.rechargeRegistBtn.setVisibility(View.GONE);
+        } else {
+            TipUtil.show(this, "闈炵敤鎴峰崱锛屼笉鑳藉厖鍊�");
+            return;
+        }
+        userCard = UserCard.getBean(data);
+        List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
+        AdminDataBean adminDataBean = baseDao.adminDao().findFirst();
+
+
+        if (Integer.valueOf(adminDataBean.getAddressCode()) == userCard.getArerNumber()) {
+            if (!userCardBeans.isEmpty()) {
+                userCardBean = userCardBeans.get(0);
+                this.userName = userCardBean.getUserName();
+            } else {
+                userCardBean = new UserCardBean();
+                userCardBean.setCardNumber(cardNumber);
+                userCardBean.setUserName("鏈煡鐢ㄦ埛");
+                userCardBean.setPhone("鏈煡");
+                userCardBean.setUserID("鏈煡");
+                userCardBean.setAddressCode(String.valueOf(userCard.getArerNumber()));
+                userCardBean.setSerial(String.valueOf(userCard.getArerNumber()));
+                this.userName = "鏈煡鐢ㄦ埛";
+            }
+
+            binding.rechargeReadLL.setVisibility(View.GONE);
+            binding.userName.setText(userName);
+            binding.redStatu.setText(state);
+            if (userCard != null) {
+                Calendar calendar = userCard.getRechargeDate();
+                if (calendar != null) {
+                    int year = calendar.get(Calendar.YEAR);
+                    int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
+                    int day = calendar.get(Calendar.DAY_OF_MONTH);
+                    binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + "骞�" + month + "鏈�" + day + "鏃�");
+                } else {
+                    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.redRemainderWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�");
+                binding.redWaterPrice.setText("姣忕珛鏂圭背姘翠环鏍硷細" + MornyUtil.changeF2Y(adminData.getWaterPrice()) + " 鍏�");
+            }
+
+        } else {
+            TipUtil.show(this, "涓嶆槸鏈尯鍩熷崱");
+        }
+
+
+    }
+
+
+    private void initView() {
+        try {
+            adminData = baseDao.adminDao().findFirst();
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+        binding.rechargeRegistBtn.setOnClickListener(v -> {
+            String morny = binding.rechargeWater.getText().toString();
+            if (!TextUtils.isEmpty(morny)) {
+                Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
+                //褰撳墠閲戦鍗曚綅涓哄厓
+                intent.putExtra("morny", morny);
+                intent.putExtra("userName", userName);
+                intent.putExtra("cardNumber", cardNumber);
+                intent.putExtra("userCard", userCard);
+                intent.putExtra("userCardBean", userCardBean);
+                intent.putExtra("rechageWater", rechageWater);
+                startActivity(intent);
+            } else {
+                TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
+            }
+        });
+    }
+
+
+    //鏍¢獙閲戦
+    public void setPricePoint(final EditText editText) {
+        editText.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before,
+                                      int count) {
+                if (s.toString().contains(".")) {
+                    if (s.length() - 1 - s.toString().indexOf(".") > 2) {
+                        s = s.toString().subSequence(0,
+                                s.toString().indexOf(".") + 3);
+                        editText.setText(s);
+                        editText.setSelection(s.length());
+                    }
+                }
+                if (s.toString().trim().substring(0).equals(".")) {
+                    s = "0" + s;
+                    editText.setText(s);
+                    editText.setSelection(2);
+                }
+
+                if (s.toString().startsWith("0")
+                        && s.toString().trim().length() > 1) {
+                    if (!s.toString().substring(1, 2).equals(".")) {
+                        editText.setText(s.subSequence(0, 1));
+                        editText.setSelection(1);
+                    }
+                }
+                String morny = editText.getText().toString();
+                if (!TextUtils.isEmpty(morny)) {
+                    rechageWater = MornyUtil.intDiv(MornyUtil.changeY2F(editText.getText().toString()), waterPrice);
+                    binding.redRechargeWater.setText("鍏呭�兼按閲忥細" + rechageWater + " 绔嬫柟绫�(鍚�)");
+                }
+
+
+            }
+
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count,
+                                          int after) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                // TODO Auto-generated method stub
+
+            }
+
+        });
+
+    }
+
+
+    protected void onDestroy() {
+        super.onDestroy();
+        rechargeActivity = null;
+    }
+}

--
Gitblit v1.8.0