From 2b11b80884fbdbc05bd8f8a76515616306a03a0a Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 12 八月 2024 09:56:36 +0800
Subject: [PATCH] 齐河联网版程序除补卡相关逻辑
---
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java | 249 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 162 insertions(+), 87 deletions(-)
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
index b95f18c..3dc5ce1 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
@@ -1,6 +1,7 @@
package com.dayu.qiheonlinelibrary.activity;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
@@ -11,22 +12,37 @@
import android.widget.EditText;
import com.dayu.baselibrary.tools.HexUtil;
+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.TipDialog;
+import com.dayu.qiheonlinelibrary.QHOnLineApplication;
import com.dayu.qiheonlinelibrary.R;
+import com.dayu.qiheonlinelibrary.bean.CardInfoResult;
+import com.dayu.qiheonlinelibrary.bean.RechargeResult;
import com.dayu.qiheonlinelibrary.card.UserCard;
import com.dayu.qiheonlinelibrary.databinding.ActivityRechargeQhlBinding;
import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean;
import com.dayu.qiheonlinelibrary.dbBean.ElectricPriceBean;
+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.RSAUtile;
+import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
import com.dayu.qiheonlinelibrary.tools.NfcReadHelper;
import com.dayu.qiheonlinelibrary.utils.CardCommon;
import com.tencent.bugly.crashreport.CrashReport;
+import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
@@ -42,13 +58,15 @@
ActivityRechargeQhlBinding binding;
public static RechargeActivity rechargeActivity;
- AdminDataBean adminData;
- String userName;
- String cardNumber = null;
- UserCardBean userCardBean;
- int waterPrice;
+
+ String cardNumber = null;//瀹炰綋鍗″彿
+ RechargeBean rechargeBean;
+
String rechageWater;//鍏呭�肩殑姘撮噺
- ElectricPriceBean priceBean;
+
+ String cardType;//鍗$姸鎬�
+
+ CardInfoResult cardInfoResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -58,7 +76,6 @@
setContentView(binding.getRoot());
setPricePoint(binding.rechargeWater);
rechargeActivity = this;
- waterPrice = baseDao.adminDao().findFirst().getWaterPrice();
initView();
} catch (Exception e) {
e.printStackTrace();
@@ -79,98 +96,50 @@
private void readAllData() {
- String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
+ cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
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();
+ getUserInfoAndCardInfo(cardNumber);
- if (!data.isEmpty()) {
- if (!TextUtils.isEmpty(cardNumber)) {
- setUserData(cardType, cardNumber, data);
- if(priceBean!=null){
- binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�"+priceBean.getPrice()+"鍏�/搴�");
- }
- } else {
- TipUtil.show(this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
- }
- } else {
- TipUtil.show(this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
- }
}
- @SuppressLint("ResourceAsColor")
- private void setUserData(String cardType, String cardNumber, List<byte[]> data) {
-
-
+ private void setUserData(String cardNumber, String userName, String lastRechargeTime, float iccardBalanceMoney, List<byte[]> data) {
String state = "";
if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
state = "缁堢鍐欏崱";
binding.rechargeLL.setVisibility(View.VISIBLE);
binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
- binding.redStatu.setTextColor(R.color.black);
+ binding.redStatu.setTextColor(this.getResources().getColor(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);
+ setCardState("鏈埛鍗″叧娉�,褰撳墠涓嶅彲鍏呭��");
} else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
- state = "鍙犲姞鍏呭��";
- binding.rechargeLL.setVisibility(View.GONE);
- binding.rechargeRegistBtn.setVisibility(View.GONE);
+ setCardState("鍙犲姞鍏呭��");
} else {
TipUtil.show(this, "闈炵敤鎴峰崱锛屼笉鑳藉厖鍊�");
return;
}
-
userCard = UserCard.getBean(data);
- List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
- AdminDataBean adminDataBean = baseDao.adminDao().findFirst();
+ if (Integer.valueOf(QHOnLineApplication.getInstance().arerNumber) == userCard.getArerNumber()) {
- 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.rechargeTextLL.setVisibility(View.VISIBLE);
binding.userName.setText(userName);
binding.redStatu.setText(state);
+ binding.redInitCode.setText(cardNumber);
+ binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細\n\n" + lastRechargeTime);
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()) + " 鍏�");
+
+ binding.redRemainderBlance.setText(String.valueOf(iccardBalanceMoney) + " 鍏�");
}
+
+ binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�" + QHOnLineApplication.getInstance().electriclePriceStr + "鍏�/搴�");
} else {
TipUtil.show(this, "闈炴湰鍖哄煙鍗n涓嶈兘鍏呭�硷紒锛侊紒");
@@ -179,29 +148,13 @@
}
-
private void initView() {
- try {
- adminData = baseDao.adminDao().findFirst();
- priceBean = baseDao.electricPriceDao().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);
+ rechaege(morny);
} else {
- TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
+ TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰�");
}
});
}
@@ -236,7 +189,7 @@
}
String morny = editText.getText().toString();
if (!TextUtils.isEmpty(morny)) {
- rechageWater = MornyUtil.intDiv(MornyUtil.changeY2F(editText.getText().toString()), waterPrice);
+// rechageWater = MornyUtil.intDiv(MornyUtil.changeY2F(editText.getText().toString()), waterPrice);
// binding.redRechargeWater.setText("鍏呭�兼按閲忥細" + rechageWater + " 绔嬫柟绫�(鍚�)");
}
@@ -264,4 +217,126 @@
super.onDestroy();
rechargeActivity = null;
}
+
+
+ private void startNfcActivity(String morny, String balance, float rechargeElectric, float iccardBalanceElectric, float totalMorny, String iccardRechargeRecordId) {
+
+ //娣诲姞鍏呭�间俊鎭�
+ rechargeBean = new RechargeBean();
+ rechargeBean.setCardNumber(cardNumber);
+ rechargeBean.setUserCode(userCard.getUserCode());
+ rechargeBean.setUserName("");
+ rechargeBean.setPersonId(cardInfoResult.getPeasantId());
+ rechargeBean.setSerial(DeviceUtils.getSN());
+ rechargeBean.setArerNumber(QHOnLineApplication.getInstance().arerNumber);
+ rechargeBean.setMorny(morny);
+ rechargeBean.setBalance(balance);
+ rechargeBean.setRechargeElectric(String.valueOf(rechargeElectric));
+ rechargeBean.setPrice(QHOnLineApplication.getInstance().electriclePriceStr);
+ rechargeBean.setSurplusElectic(String.valueOf(iccardBalanceElectric));
+ long time = System.currentTimeMillis();
+ rechargeBean.setRechargeDate(time);
+ rechargeBean.setUserId("");
+ rechargeBean.setTotalMorny(String.valueOf(totalMorny));
+ rechargeBean.setState(1);
+ rechargeBean.setOrderId(iccardRechargeRecordId);
+
+ userCard.setCardWriteState(0);
+ userCard.setCardState(1);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(time);
+ userCard.setBalance(MornyUtil.changeY2F(String.valueOf(balance)));
+ userCard.setSurplusElecticity(MornyUtil.changeY2F(String.valueOf(iccardBalanceElectric)));
+ String sumMorny = MornyUtil.sumPrice(Float.valueOf(MornyUtil.changeF2Y(userCard.getTotalMorny())), Float.valueOf(morny));
+ userCard.setTotalMorny(MornyUtil.changeY2F(sumMorny));
+ userCard.setRechargeDate(calendar);
+
+
+ Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
+ intent.putExtra("morny", morny);
+ intent.putExtra("userCard", userCard);
+ intent.putExtra("rechargeBean", rechargeBean);
+ startActivity(intent);
+ }
+
+
+ /**
+ * IC鍗″厖鍊�
+ *
+ * @param morny
+ */
+ public void rechaege(String morny) {
+ Map<String, Object> data = new HashMap<>();
+ //缁堢璁惧鍙�
+ data.put("equipCode", DeviceUtils.getSN());
+ //ic鍗′俊鎭痠d
+ data.put("iccardNum", cardNumber);
+ //浜ゆ槗姘磋垂閲戦锛堝厓锛�
+ data.put("rechargeWaterMoney", morny);
+ //鍗″唴鍓╀綑閲戦锛堝厓锛�
+ data.put("iccardBalanceMoney", MornyUtil.changeF2Y(userCard.getBalance()));
+ //鍗″唴鍓╀綑姘撮噺锛坢鲁锛�
+ data.put("iccardBalanceAmonunt", "0");
+ //鍗″唴鍓╀綑鐢甸噺
+ data.put("iccardBalanceElectric", MornyUtil.changeF2Y(userCard.getSurplusElecticity()));
+ ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/rechargeCard", RechargeResult.class, data, new SubscriberListener<BaseResponse<RechargeResult>>() {
+ @Override
+ public void onNext(BaseResponse<RechargeResult> t) {
+ if (t.isSuccess()) {
+ RechargeResult rechargeResult = t.getData();
+ startNfcActivity(morny, rechargeResult.getIccardBalanceMoney(), rechargeResult.getRechargeElectricAmount(), rechargeResult.getIccardBalanceElectric(), rechargeResult.getTotalRechargeMoney(), rechargeResult.getIccardRechargeRecordId());
+ }
+ }
+ });
+ }
+
+
+ /**
+ * 鑾峰彇鍗′俊鎭拰鐢ㄦ埛淇℃伅
+ *
+ * @param iccardCode
+ */
+ public void getUserInfoAndCardInfo(String iccardCode) {
+ Map<String, Object> data = new HashMap<>();
+ //ic鍗′俊鎭痠d
+ data.put("iccardNum", iccardCode);
+ ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
+ @Override
+ public void onNext(BaseResponse<CardInfoResult> t) {
+ String state = "";
+ if (t.isSuccess()) {
+ //ic鍗$姸鎬� 0 姝e父 1 宸叉敞閿� 2 宸叉寕澶�
+ if (t.getData().getIccardStatus() == 0) {
+ List<byte[]> data = NfcReadHelper.getInstence(intent, RechargeActivity.this).getOnesectorData();
+ if (!data.isEmpty()) {
+ if (!TextUtils.isEmpty(cardNumber)) {
+ cardInfoResult = t.getData();
+ setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime(), cardInfoResult.getIccardBalanceMoney(), data);
+ } else {
+ TipUtil.show(RechargeActivity.this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
+ }
+ } else {
+ TipUtil.show(RechargeActivity.this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
+ } else if (t.getData().getIccardStatus() == 1) {
+ TipUtil.show(RechargeActivity.this, "褰撳墠鍗″凡娉ㄩ攢");
+ } else {
+ TipUtil.show(RechargeActivity.this, "褰撳墠鍗″凡鎸傚け");
+ }
+
+
+ }
+ }
+ });
+ }
+
+
+ private void setCardState(String state) {
+ binding.rechargeLL.setVisibility(View.GONE);
+ binding.rechargeRegistBtn.setVisibility(View.GONE);
+ binding.redStatu.setTextColor(RechargeActivity.this.getResources().getColor(com.dayu.baselibrary.R.color.red));
+ binding.redStatu.setText(state);
+ }
+
+
}
--
Gitblit v1.8.0