| package com.dayu.qiheonlinelibrary.activity; | 
|   | 
| import android.content.Intent; | 
| import android.nfc.NfcAdapter; | 
| import android.os.Bundle; | 
| import android.view.LayoutInflater; | 
|   | 
| import com.dayu.baselibrary.net.subscribers.SubscriberListener; | 
| import com.dayu.baselibrary.tools.HexUtil; | 
| import com.dayu.baselibrary.utils.BaseCommon; | 
| import com.dayu.baselibrary.utils.TipUtil; | 
| 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.dbBean.UserCardBean; | 
| import com.dayu.qiheonlinelibrary.net.ApiManager; | 
| import com.dayu.qiheonlinelibrary.net.BaseResponse; | 
| 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-08-12 | 
|  * Time: 20:10 | 
|  * 备注: 读取管理卡,从控制器读卡后在此界面读卡 | 
|  */ | 
| public class ManagerReadActivityQHOline extends QHOlineBaseNfcActivity { | 
|   | 
|     ActivityManagerReadQhlBinding binding; | 
|     Intent intent; | 
|     String oldCardNumber; | 
|     String cardNumber; | 
|   | 
|     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()); | 
|         initView(); | 
|     } | 
|   | 
|     private void initView() { | 
|         binding.managerNext.setOnClickListener(v -> { | 
|             if (isReadSuccess) { | 
|                 Intent intent = new Intent(ManagerReadActivityQHOline.this, NFCWreatActivityQHOline.class); | 
|                 intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId()); | 
|                 intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD); | 
|                 startActivity(intent); | 
|                 ManagerReadActivityQHOline.this.finish(); | 
|             } else { | 
|                 TipUtil.show(ManagerReadActivityQHOline.this, "请刷管理卡"); | 
|             } | 
|         }); | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public void onNfcBack(Intent intent) { | 
|         this.intent = intent; | 
|         ProgressDialog.show(this); | 
|         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { | 
|             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(new ManagerToUserCard()); | 
|                 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, "当前卡不是管理卡!!!"); | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 获取卡信息和用户信息 | 
|      * | 
|      * @param iccardCode | 
|      */ | 
|     public void getUserInfoAndCardInfo(String iccardCode) { | 
|         Map<String, Object> data = new HashMap<>(); | 
|         //ic卡信息id | 
|         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(ManagerReadActivityQHOline.this, "读卡成功,下一步将写卡!", () -> { | 
|                             Intent intent = new Intent(ManagerReadActivityQHOline.this, NFCWreatActivityQHOline.class); | 
|                             intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId()); | 
|                             intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD); | 
|                             intent.putExtra("userCardBean", userCardBean); | 
|                             startActivity(intent); | 
|                             ManagerReadActivityQHOline.this.finish(); | 
|                         }); | 
|                     } else { | 
|                         TipUtil.show(ManagerReadActivityQHOline.this, "未查询到该卡信息,请检查。"); | 
|                     } | 
|                 } | 
|             } | 
|         }); | 
|     } | 
| } |