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(); 
 | 
    } 
 | 
} 
 |