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;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
try {
|
binding = ActivityRechargeQhaBinding.inflate(LayoutInflater.from(this));
|
setContentView(binding.getRoot());
|
setPricePoint(binding.rechargeWater);
|
rechargeActivity = this;
|
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 = "终端写卡";
|
} else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
|
state = "刷卡开泵后,当前状态不能充值";
|
binding.rechargeLL.setVisibility(View.GONE);
|
} else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
|
state = "叠加充值";
|
binding.rechargeLL.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 (adminDataBean.addressCode.equalsIgnoreCase(String.valueOf(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.rechargeRegistBtn.setVisibility(View.VISIBLE);
|
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("总用水量:" + userCard.getTotalWater());
|
binding.redTotalPower.setText("总用电量:" + userCard.getTotalElectric());
|
binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + "元");
|
binding.redRemainderWater.setText("剩余水量:" + userCard.getSurplusWater());
|
}
|
|
} 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);
|
startActivity(intent);
|
} else {
|
TipUtil.show(RechargeActivity.this, "请输入充值金额(元)");
|
}
|
});
|
}
|
|
|
//校验金额
|
public static 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);
|
}
|
}
|
}
|
|
@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;
|
}
|
}
|