| package com.dayu.qiheonlinelibrary.activity; | 
|   | 
| import android.content.Intent; | 
| import android.os.Bundle; | 
| import android.view.LayoutInflater; | 
|   | 
| import androidx.recyclerview.widget.LinearLayoutManager; | 
|   | 
| import com.dayu.baselibrary.net.subscribers.SubscriberListener; | 
| import com.dayu.baselibrary.utils.BaseCommon; | 
| import com.dayu.baselibrary.utils.DeviceUtils; | 
| import com.dayu.baselibrary.utils.TipUtil; | 
| import com.dayu.baselibrary.utils.ToastUtil; | 
| import com.dayu.baselibrary.view.ConfirmDialog; | 
| import com.dayu.qiheonlinelibrary.adapter.CardAdapter; | 
| import com.dayu.qiheonlinelibrary.bean.CardInfoListResult; | 
| import com.dayu.qiheonlinelibrary.bean.UserListResult; | 
| import com.dayu.qiheonlinelibrary.databinding.ActivityCardSearchQhlBinding; | 
| import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; | 
| import com.dayu.qiheonlinelibrary.net.ApiManager; | 
| import com.dayu.qiheonlinelibrary.net.BaseResponse; | 
|   | 
| import com.scwang.smart.refresh.footer.ClassicsFooter; | 
| import com.scwang.smart.refresh.header.ClassicsHeader; | 
| import com.scwang.smart.refresh.layout.api.RefreshLayout; | 
| import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener; | 
| import com.scwang.smart.refresh.layout.listener.OnRefreshListener; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.HashMap; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * author: zuo | 
|  * Date: 2024-08-08 | 
|  * Time: 13:37 | 
|  * 备注:选择用户的卡片 | 
|  */ | 
| public class CardSearchActivityQHOline extends QHOlineBaseActivity { | 
|     ActivityCardSearchQhlBinding binding; | 
|     RefreshLayout myRefreshLayout; | 
|     CardAdapter adapter; | 
|   | 
|     int page = 1; | 
|     int size = 10; | 
|   | 
|     String pearsontId; | 
|     List<CardInfoListResult.Records> records = new ArrayList<>(); | 
|     int type; | 
|     ConfirmDialog confirmDialog; | 
|     CardInfoListResult.Records mRecord; | 
|   | 
|     UserCardBean userCardBean; | 
|   | 
|     @Override | 
|     protected void onCreate(Bundle savedInstanceState) { | 
|         super.onCreate(savedInstanceState); | 
|         binding = ActivityCardSearchQhlBinding.inflate(LayoutInflater.from(this)); | 
|         setContentView(binding.getRoot()); | 
|         pearsontId = this.getIntent().getStringExtra("pearsontId"); | 
|         type = this.getIntent().getIntExtra("type", 0); | 
|         userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard"); | 
|         initView(); | 
|         selectUser(true); | 
|     } | 
|   | 
|   | 
|     private void initView() { | 
|         myRefreshLayout = (RefreshLayout) binding.refreshLayout; | 
|         myRefreshLayout.setRefreshFooter(new ClassicsFooter(this)); | 
|         myRefreshLayout.setRefreshHeader(new ClassicsHeader(this)); | 
|         myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { | 
|             @Override | 
|             public void onLoadMore(RefreshLayout refreshlayout) { | 
|                 page = page + 1; | 
|                 selectUser(false); | 
|             } | 
|         }); | 
|         adapter = new CardAdapter(this, records, new CardAdapter.OnItemClickListener() { | 
|             @Override | 
|             public void onItemClick(int position) { | 
|                 mRecord = records.get(position); | 
|                 String title; | 
|                 if (type == BaseCommon.LOSS_CARD) { | 
|                     title = "挂失卡片"; | 
|                 } else if (type == BaseCommon.REPORT_LOSS_CARD) { | 
|                     title = "解除挂失卡片"; | 
|                 } else { | 
|                     title = "补卡"; | 
|                 } | 
|                 String data = "卡号:" + records.get(position).getIccardNum(); | 
|                 confirmDialog = new ConfirmDialog(CardSearchActivityQHOline.this, title, data, v -> { | 
|   | 
|                     String iccardInfoId = mRecord.getIccardInfoId(); | 
|                     if (type == BaseCommon.LOSS_CARD) { | 
|                         lossCard(iccardInfoId); | 
|                     } else if (type == BaseCommon.REPORT_LOSS_CARD) { | 
|                         reportLossCard(iccardInfoId); | 
|                     } else if (type == BaseCommon.REPLACE_HAS_CARD) {//未关泵补卡 | 
|                         //补卡前需要先挂失 | 
|                         if (mRecord.getIccardStatus() == 0) { | 
|                             lossCard(iccardInfoId); | 
|                         } else if (mRecord.getIccardStatus() == 2) { | 
|                             startManagerActivity(iccardInfoId, mRecord.getIccardNum()); | 
|                         } else { | 
|                             TipUtil.show("当前卡状态不能再补卡"); | 
|                         } | 
|                     } else if (type == BaseCommon.REPLACE_NO_CARD) {//已关泵补卡 | 
|                         //补卡前需要先挂失 | 
|                         if (records.get(position).getIccardStatus() == 0) { | 
|                             lossCard(iccardInfoId); | 
|                         } else if (records.get(position).getIccardStatus() == 2) { | 
|                             startNFCActivit(iccardInfoId); | 
|                         } else { | 
|                             TipUtil.show("当前卡状态不能再补卡"); | 
|                         } | 
|                     } | 
|                     confirmDialog.dismiss(); | 
|                 }); | 
|                 confirmDialog.show(); | 
|             } | 
|         }); | 
|         LinearLayoutManager layoutManager = new LinearLayoutManager(this); | 
|         binding.recyclerView.setLayoutManager(layoutManager); | 
|         binding.recyclerView.setAdapter(adapter); | 
|   | 
|         myRefreshLayout.setOnRefreshListener(new OnRefreshListener() { | 
|             @Override | 
|             public void onRefresh(RefreshLayout refreshlayout) { | 
|                 selectUser(true); | 
|             } | 
|         }); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 查询卡 | 
|      */ | 
|     private void selectUser(boolean isRefresh) { | 
|         if (isRefresh) { | 
|             page = 1; | 
|             records.clear(); | 
|         } | 
|         Map<String, Object> data = new HashMap<>(); | 
|         data.put("peasantId", pearsontId); | 
|         data.put("current", page); | 
|         data.put("pageSize", size); | 
|         ApiManager.getInstance().requestPostLoading(this, "iccard/info/getIccardPeasantVoList", CardInfoListResult.class, data, new SubscriberListener<BaseResponse<CardInfoListResult>>() { | 
|             @Override | 
|             public void onNext(BaseResponse<CardInfoListResult> t) { | 
|                 if (t.isSuccess()) { | 
|                     if (t.getData() != null) { | 
|                         if (t.getData().getTotal() == records.size() || size > t.getData().getTotal()) { | 
|                             myRefreshLayout.finishLoadMoreWithNoMoreData(); | 
|                         } | 
|                         records.addAll(t.getData().getRecords()); | 
|                         adapter.notifyDataSetChanged(); | 
|                         myRefreshLayout.finishLoadMore(); | 
|                         if (isRefresh) { | 
|                             myRefreshLayout.finishRefresh(); | 
|                         } | 
|                     } | 
|   | 
|                 } else { | 
|                     TipUtil.show(CardSearchActivityQHOline.this, t.getMsg()); | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|     /** | 
|      * 挂失卡 | 
|      */ | 
|     private void lossCard(String iccardInfoId) { | 
|   | 
|         Map<String, Object> data = new HashMap<>(); | 
|         data.put("iccardInfoId", iccardInfoId); | 
|         data.put("equipCode", DeviceUtils.getSN()); | 
|         ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reportLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() { | 
|             @Override | 
|             public void onNext(BaseResponse<UserListResult> t) { | 
|                 if (t.isSuccess()) { | 
|                     if (t.getData() != null) { | 
|                         if (type == BaseCommon.LOSS_CARD) { | 
|                             TipUtil.show(CardSearchActivityQHOline.this, "挂失成功", () -> { | 
|                                 CardSearchActivityQHOline.this.finish(); | 
|                                 if (UserSearchActivityQHOline.userSearchActivity != null) { | 
|                                     UserSearchActivityQHOline.userSearchActivity.finish(); | 
|                                     UserSearchActivityQHOline.userSearchActivity = null; | 
|                                 } | 
|                             }); | 
|                         } else if (type == BaseCommon.REPLACE_NO_CARD) { | 
|                             startNFCActivit(iccardInfoId); | 
|                         } else if (type == BaseCommon.REPLACE_HAS_CARD) { | 
|                             startManagerActivity(iccardInfoId, mRecord.getIccardNum()); | 
|                         } | 
|                     } | 
|                 } else { | 
|                     ToastUtil.show(t.getMsg()); | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|     /** | 
|      * 解除挂失卡 | 
|      */ | 
|     private void reportLossCard(String iccardInfoId) { | 
|   | 
|         Map<String, Object> data = new HashMap<>(); | 
|         data.put("iccardInfoId", iccardInfoId); | 
|         data.put("equipCode", DeviceUtils.getSN()); | 
|         ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/releaseLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() { | 
|             @Override | 
|             public void onNext(BaseResponse<UserListResult> t) { | 
|                 if (t.isSuccess()) { | 
|                     TipUtil.show(CardSearchActivityQHOline.this, "解除挂失成功", () -> { | 
|                         CardSearchActivityQHOline.this.finish(); | 
|                     }); | 
|                 } else { | 
|                     ToastUtil.show(t.getMsg()); | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|     /** | 
|      * 已关泵补卡 | 
|      * | 
|      * @param iccardInfoId | 
|      */ | 
|     private void startNFCActivit(String iccardInfoId) { | 
|         //直接补卡的方式 | 
|         Intent intent = new Intent(CardSearchActivityQHOline.this, NFCWreatActivityQHOline.class); | 
|         intent.putExtra("iccardInfoId", iccardInfoId); | 
|         intent.putExtra("replaceType", type); | 
|         intent.putExtra("userCardBean", userCardBean); | 
|         startActivity(intent); | 
|         CardSearchActivityQHOline.this.finish(); | 
|     } | 
|   | 
|     /** | 
|      * 未关泵补卡 | 
|      * | 
|      * @param iccardInfoId | 
|      * @param oldCardNumber | 
|      */ | 
|     private void startManagerActivity(String iccardInfoId, String oldCardNumber) { | 
|         Intent intent = new Intent(CardSearchActivityQHOline.this, ManagerWriteActivityQHOline.class); | 
|         intent.putExtra("iccardInfoId", iccardInfoId); | 
|         intent.putExtra("replaceType", type); | 
|         intent.putExtra("oldCardNumber", oldCardNumber); | 
|         startActivity(intent); | 
|         CardSearchActivityQHOline.this.finish(); | 
|     } | 
| } |