From 954eaed548efb75b3dc79343587acb79e53d214d Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 23 八月 2024 17:19:59 +0800 Subject: [PATCH] 优化写卡逻辑,再次读取内容确认写卡成功再提示成功 --- qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java | 199 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 169 insertions(+), 30 deletions(-) diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java index 7165c03..a620a8d 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java @@ -2,30 +2,46 @@ import android.content.Intent; import android.os.Bundle; +import android.text.Editable; import android.text.InputFilter; import android.text.Spanned; import android.text.TextUtils; +import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; +import android.widget.EditText; import androidx.annotation.NonNull; import com.dayu.baselibrary.tools.Utils; +import com.dayu.baselibrary.utils.DeviceUtils; import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.utils.ToastUtil; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.qiheonlinelibrary.bean.AddUserResult; +import com.dayu.qiheonlinelibrary.bean.PricePlanResult; +import com.dayu.qiheonlinelibrary.bean.UserListResult; import com.dayu.qiheonlinelibrary.card.UserCard; import com.dayu.qiheonlinelibrary.databinding.ActivityNewCardQhlBinding; import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; 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.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import com.kernal.passportreader.sdk.CardsCameraActivity; import com.kernal.passportreader.sdk.utils.DefaultPicSavePath; +import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -42,10 +58,8 @@ public class NewCardActivity extends BaseActivity { public static final int SCAN_IDCARD_REQUEST = 1; - UserCardBean userCardBean; ActivityNewCardQhlBinding newCardBinding; - AdminDataBean adminData; static NewCardActivity newCardActivity; private int defValueMainId = 2; @@ -63,7 +77,8 @@ } private void initView() { - newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()}); + setPricePoint(newCardBinding.newCardMorny); +// newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()}); newCardBinding.newCardId.setFilters(new InputFilter[]{new AlphaNumericXFilter(), new InputFilter.LengthFilter(18)}); //韬唤璇佽瘑鍒� newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() { @@ -76,43 +91,21 @@ newCardBinding.newCardRegistBtn.setOnClickListener(v -> { String userName = newCardBinding.newCardName.getText().toString(); - long date = System.currentTimeMillis(); String phone = newCardBinding.newCardPhone.getText().toString(); String userID = newCardBinding.newCardId.getText().toString().toUpperCase(); - + String morny = newCardBinding.newCardMorny.getText().toString(); if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID) ) { - if (userName.length() <= 1 || !validateName(userName)) { + if (userName.length() <= 1) { TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�"); } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) { TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿"); } else if (!Utils.check(userID)) { TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�"); } else { - userCardBean = new UserCardBean(); - userCardBean.setUserName(userName); - userCardBean.setDate(date); - userCardBean.setSerial(adminData.getSerial()); - userCardBean.setPhone(phone); - userCardBean.setUserID(userID); - - - UserCard userCard = new UserCard(); - userCard.setArerNumber(Integer.valueOf(adminData.getSerial())); - userCard.setDeviceNumberl(Integer.valueOf(adminData.getAddressCode())); - userCard.setRechargeTimes((byte) 0); - userCard.setTotalWater(0); - userCard.setTotalElectric(0); - userCard.setBalance(0); - userCard.setSurplusWater(0); - userCard.setRechargeDate(Calendar.getInstance()); - - Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class); - intent.putExtra("userCard", userCard); - intent.putExtra("dbUserCard", userCardBean); - startActivity(intent); + selectUser(userID, phone, userName, morny); } } else { @@ -121,6 +114,7 @@ }); } + //鏍¢獙鎵嬫満鍙� private boolean isValidPhoneNumber(String phoneNumber) { // 瀹氫箟鎵嬫満鍙风殑姝e垯琛ㄨ揪寮忥紝纭繚鏁板瓧閮ㄥ垎娌℃湁杩炵画6浣嶇浉鍚岀殑鏁板瓧 String phoneRegex = "^1[0-9]{10}$"; @@ -248,8 +242,7 @@ private void setData() { try { - adminData = baseDao.adminDao().findFirst(); - newCardBinding.newCardVillageNum.setText(adminData.getSerial()); + newCardBinding.newCardArerNumber.setText(QHOnLineApplication.getInstance().arerNumber); } catch (Exception e) { e.printStackTrace(); } @@ -307,4 +300,150 @@ newCardActivity = null; } + + /** + * 鏌ヨ鐢ㄦ埛 + * + * @param peasantIdNumber + * @param peasantPhone + * @param peasantName + * @param morny 寮�鍗¢噾棰� + */ + private void selectUser(String peasantIdNumber, String peasantPhone, String peasantName, String morny) { + Map<String, Object> data = new HashMap<>(); + data.put("adcd", QHOnLineApplication.getInstance().adcd); + data.put("peasantIdNumber", peasantIdNumber); + data.put("current", 1); + data.put("pageSize", 10); + ApiManager.getInstance().requestPostLoading(this, "base/peasant/pagePeasantVo", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() { + @Override + public void onNext(BaseResponse<UserListResult> t) { + if (t.isSuccess()) { + if (t.getData().getTotal() == 0) { + if (!TextUtils.isEmpty(QHOnLineApplication.getInstance().planId)) { + addUser(peasantIdNumber, peasantPhone, peasantName, QHOnLineApplication.getInstance().planId, morny); + } + } else { + startNFCWreatActivity(peasantIdNumber, t.getData().getRecords().get(0).getPeasantPhone(), t.getData().getRecords().get(0).getPeasantName(), t.getData().getRecords().get(0).getPeasantId(), morny); + } + } else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + private void startNFCWreatActivity(String peasantIdNumber, String peasantPhone, String peasantName, String peasanId, String morny) { + UserCard userCard = new UserCard(); + userCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber)); + userCard.setUserCode(QHOnLineApplication.getInstance().adcd); + userCard.setCardWriteState(0); + userCard.setCardState(1); + userCard.setBalance(0); + userCard.setSurplusElecticity(0); + userCard.setTotalMorny(0); + userCard.setRechargeDate(Calendar.getInstance()); + userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr)); + UserCardBean userCardBean = new UserCardBean(); + + userCardBean.setUserName(peasantName); + userCardBean.setUserID(peasantIdNumber); + userCardBean.setPhone(peasantPhone); + userCardBean.setPersonId(peasanId); + if (!TextUtils.isEmpty(morny)) { + userCardBean.setCardMorny(Integer.valueOf(morny)); + } else { + userCardBean.setCardMorny(0); + } + userCardBean.setAddressCode(QHOnLineApplication.getInstance().adcd); + userCardBean.setAddressName(QHOnLineApplication.getInstance().addressName); + userCardBean.setArerNumber(QHOnLineApplication.getInstance().arerNumber); + userCardBean.setDate(System.currentTimeMillis()); + userCardBean.setSerial(DeviceUtils.getSN()); + + Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class); + intent.putExtra("userCard", userCard); + intent.putExtra("dbUserCard", userCardBean); + startActivity(intent); + } + + /** + * 娣诲姞鐢ㄦ埛 + * + * @param peasantIdNumber + * @param peasantPhone + * @param peasantName + * @param planId 浠锋牸ID + */ + private void addUser(String peasantIdNumber, String peasantPhone, String peasantName, String planId, String morny) { + Map<String, Object> data = new HashMap<>(); + data.put("planId", planId); + data.put("adcd", QHOnLineApplication.getInstance().adcd); + data.put("peasantIdNumber", peasantIdNumber); + data.put("peasantCode", ""); + data.put("peasantName", peasantName); + data.put("peasantPhone", peasantPhone); + ApiManager.getInstance().requestPostLoading(this, "base/peasant/savePeasant", AddUserResult.class, data, new SubscriberListener<BaseResponse<AddUserResult>>() { + @Override + public void onNext(BaseResponse<AddUserResult> t) { + if (t.isSuccess()) { + startNFCWreatActivity(peasantIdNumber, t.getData().getPeasantPhone(), t.getData().getPeasantName(), t.getData().getPeasantId(), morny); + } else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + //鏍¢獙閲戦 + 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 + + } + + }); + + } } -- Gitblit v1.8.0