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