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.activity.BaseActivity; 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.net.ApiManager; import com.dayu.qiheonlinelibrary.net.BaseResponse; import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; 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 CardSearchActivity extends BaseActivity { ActivityCardSearchQhlBinding binding; RefreshLayout myRefreshLayout; CardAdapter adapter; int page = 1; int size = 10; String pearsontId; List records = new ArrayList<>(); int type; ConfirmDialog confirmDialog; CardInfoListResult.Records mRecord; @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); 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(CardSearchActivity.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 data = new HashMap<>(); data.put("peasantId", pearsontId); data.put("current", page); data.put("pageSize", size); ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/info/getIccardPeasantVoList", CardInfoListResult.class, data, new SubscriberListener>() { @Override public void onNext(BaseResponse t) { if (t.isSuccess()) { if (t.getData().getTotal() == records.size()) { myRefreshLayout.finishLoadMoreWithNoMoreData(); } else { records.addAll(t.getData().getRecords()); } adapter.notifyDataSetChanged(); myRefreshLayout.finishLoadMore(); if (isRefresh) { myRefreshLayout.finishRefresh(); } } } }); } /** * 挂失卡 */ private void lossCard(String iccardInfoId) { Map data = new HashMap<>(); data.put("iccardInfoId", iccardInfoId); data.put("equipCode", DeviceUtils.getSN()); ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/reportLossCard", UserListResult.class, data, new SubscriberListener>() { @Override public void onNext(BaseResponse t) { if (t.isSuccess()) { if (type == BaseCommon.LOSS_CARD) { TipUtil.show(CardSearchActivity.this, "挂失成功", () -> { CardSearchActivity.this.finish(); }); } else if (type == BaseCommon.REPLACE_NO_CARD) { startNFCActivit(iccardInfoId); } else if (type == BaseCommon.REPLACE_HAS_CARD) { startNFCActivit(iccardInfoId); } } else { ToastUtil.show(t.getMsg()); } } }); } /** * 解除挂失卡 */ private void reportLossCard(String iccardInfoId) { Map data = new HashMap<>(); data.put("iccardInfoId", iccardInfoId); data.put("equipCode", DeviceUtils.getSN()); ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/releaseLossCard", UserListResult.class, data, new SubscriberListener>() { @Override public void onNext(BaseResponse t) { if (t.isSuccess()) { TipUtil.show(CardSearchActivity.this, "解除挂失成功", () -> { CardSearchActivity.this.finish(); }); } else { ToastUtil.show(t.getMsg()); } } }); } /** * 已关泵补卡 * * @param iccardInfoId */ private void startNFCActivit(String iccardInfoId) { //直接补卡的方式 Intent intent = new Intent(CardSearchActivity.this, NFCWreatActivity.class); intent.putExtra("iccardInfoId", iccardInfoId); intent.putExtra("replaceType", type); startActivity(intent); CardSearchActivity.this.finish(); } /** * 未关泵补卡 * * @param iccardInfoId * @param oldCardNumber */ private void startManagerActivity(String iccardInfoId, String oldCardNumber) { Intent intent = new Intent(CardSearchActivity.this, ManagerWriteActivity.class); intent.putExtra("iccardInfoId", iccardInfoId); intent.putExtra("replaceType", type); intent.putExtra("oldCardNumber", oldCardNumber); startActivity(intent); CardSearchActivity.this.finish(); } }