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/ManagerReadActivity.java | 130 ++++++++++++++++++++++++++++++++----------- 1 files changed, 96 insertions(+), 34 deletions(-) diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java index 9cbb9ab..2a47e87 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java @@ -3,50 +3,65 @@ import android.content.Intent; import android.nfc.NfcAdapter; import android.os.Bundle; -import android.text.TextUtils; import android.view.LayoutInflater; +import com.dayu.baselibrary.tools.HexUtil; +import com.dayu.baselibrary.utils.BaseCommon; import com.dayu.baselibrary.utils.TipUtil; -import com.dayu.qiheonlinelibrary.card.ManageCard; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.qiheonlinelibrary.bean.CardInfoResult; +import com.dayu.qiheonlinelibrary.card.ManagerToUserCard; import com.dayu.qiheonlinelibrary.databinding.ActivityManagerReadQhlBinding; -import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper; +import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; +import com.dayu.qiheonlinelibrary.net.ApiManager; +import com.dayu.qiheonlinelibrary.net.BaseResponse; +import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; import com.dayu.qiheonlinelibrary.tools.NfcReadHelper; +import com.dayu.qiheonlinelibrary.utils.CardCommon; import com.dayu.qiheonlinelibrary.view.ProgressDialog; +import java.util.HashMap; +import java.util.Map; /** + * Created by Android Studio. * author: zuo - * Date: 2024-05-09 - * Time: 11:05 - * 澶囨敞锛氬埗浣滅鐞嗗崱 + * Date: 2024-08-12 + * Time: 20:10 + * 澶囨敞锛� 璇诲彇绠$悊鍗★紝浠庢帶鍒跺櫒璇诲崱鍚庡湪姝ょ晫闈㈣鍗� */ public class ManagerReadActivity extends BaseNfcActivity { ActivityManagerReadQhlBinding binding; Intent intent; - String oldCardNumber; - boolean isCreatManagerCard; - String iccardInfoId; + String cardNumber; - int type; + boolean isReadSuccess; + + CardInfoResult cardInfoResult; + ManagerToUserCard managerToUserCard; + + UserCardBean userCardBean = new UserCardBean(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityManagerReadQhlBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); - oldCardNumber = this.getIntent().getStringExtra("oldCardNumber"); - iccardInfoId = this.getIntent().getStringExtra("iccardInfoId"); - type = this.getIntent().getIntExtra("replaceType", 0); + initView(); + } + + private void initView() { binding.managerNext.setOnClickListener(v -> { - if (isCreatManagerCard) { + if (isReadSuccess) { Intent intent = new Intent(ManagerReadActivity.this, NFCWreatActivity.class); - intent.putExtra("iccardInfoId", iccardInfoId); - intent.putExtra("replaceType", type); + intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId()); + intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD); startActivity(intent); + ManagerReadActivity.this.finish(); } else { - TipUtil.show("璇峰厛鍒朵綔绠$悊鍗�"); + TipUtil.show(ManagerReadActivity.this, "璇峰埛绠$悊鍗�"); } }); } @@ -56,27 +71,74 @@ this.intent = intent; ProgressDialog.show(this); if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { - getCardNumber(); + 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]; + } + + if (CardCommon.MANAGE_CRAD.equalsIgnoreCase(cardType)) { + managerToUserCard = NfcReadHelper.getInstence(intent, this).getManagerToUserCardData(); + if (managerToUserCard != null) { + if (QHOnLineApplication.getInstance().arerNumber.equalsIgnoreCase(String.valueOf(managerToUserCard.getArerNumber()))) { + String oldCardNumber = managerToUserCard.getOldCardNumber(); + oldCardNumber = HexUtil.spaceHex(oldCardNumber); + oldCardNumber = HexUtil.HighLowHex(oldCardNumber); + getUserInfoAndCardInfo(oldCardNumber); + } else { + TipUtil.show(this, "涓嶆槸鏈尯鍩熷崱锛�"); + } + ProgressDialog.dismiss(); + } else { + ProgressDialog.dismiss(); + TipUtil.show(this, "璇诲崱澶辫触锛岃閲嶈瘯锛�"); + } + } else { + ProgressDialog.dismiss(); + TipUtil.show(this, "褰撳墠鍗′笉鏄鐞嗗崱锛侊紒锛�"); + } } super.onNewIntent(intent); } - - private void getCardNumber() { - String cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber(); - if (!TextUtils.isEmpty(cardNumber)) { - ManageCard manageCard = new ManageCard(); - manageCard.setUserCard(oldCardNumber); - manageCard.setType((byte) 0); - if (NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0)) { - isCreatManagerCard = true; - } else { - isCreatManagerCard = false; + /** + * 鑾峰彇鍗′俊鎭拰鐢ㄦ埛淇℃伅 + * + * @param iccardCode + */ + public void getUserInfoAndCardInfo(String iccardCode) { + Map<String, Object> data = new HashMap<>(); + //ic鍗′俊鎭痠d + data.put("iccardNum", iccardCode); + ApiManager.getInstance().requestPostLoading(this, "iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() { + @Override + public void onNext(BaseResponse<CardInfoResult> t) { + String state = ""; + if (t.isSuccess()) { + if (t.getData() != null) { + cardInfoResult = t.getData(); + userCardBean.setUserName(cardInfoResult.getPeasantName()); + userCardBean.setUserID(cardInfoResult.getPeasantIdNumber()); + userCardBean.setPhone(cardInfoResult.getPeasantPhone()); + userCardBean.setPersonId(cardInfoResult.getPeasantId()); + userCardBean.setAddressCode(cardInfoResult.getAdcd()); + userCardBean.setAddressName(cardInfoResult.getAdcdName()); + isReadSuccess = true; + TipUtil.show(ManagerReadActivity.this, "璇诲崱鎴愬姛锛屼笅涓�姝ュ皢鍐欏崱锛�", () -> { + Intent intent = new Intent(ManagerReadActivity.this, NFCWreatActivity.class); + intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId()); + intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD); + intent.putExtra("userCardBean", userCardBean); + startActivity(intent); + ManagerReadActivity.this.finish(); + }); + } else { + TipUtil.show(ManagerReadActivity.this, "鏈煡璇㈠埌璇ュ崱淇℃伅锛岃妫�鏌ャ��"); + } + } } - ProgressDialog.dismiss(); - TipUtil.show(this,"绠$悊鍗″埗鍗℃垚鍔燂紝璇峰湪鎺у埗鍣ㄧ鍒峰崱"); - } else { - TipUtil.show(this, "鏈鍙栧埌鏂板崱鍗″彿锛岃閲嶆柊璐村崱"); - } + }); } } -- Gitblit v1.8.0