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.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.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<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(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<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(CardSearchActivity.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(CardSearchActivity.this, "挂失成功", () -> {
|
CardSearchActivity.this.finish();
|
if (UserSearchActivity.userSearchActivity != null) {
|
UserSearchActivity.userSearchActivity.finish();
|
UserSearchActivity.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(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);
|
intent.putExtra("userCardBean", userCardBean);
|
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();
|
}
|
}
|