From 9450bcb197c2de53982368d5c2059b31abed3b87 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 09 八月 2024 17:40:29 +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