左晓为主开发手持机充值管理机
zuoxiao
2024-08-21 6a5879320dfac43155d024814a0a4d794a612696
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
@@ -107,20 +107,20 @@
        }
        //获取卡内信息
        mOldUserCard = NfcReadHelper.getInstence(intent, this).getUserCardData();
        getUserInfoAndCardInfo(cardNumber);
        getUserInfoAndCardInfo(cardNumber,mOldUserCard.getMyUserCode());
    }
    private void setUserData(String cardNumber, String userName, String lastRechargeTime, float iccardBalanceMoney, List<byte[]> data) {
        String state = "";
    private void setUserData(String cardNumber, String userName, String lastRechargeTime, List<byte[]> data) {
        if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
            state = "终端写卡";
            setCardState("终端写卡");
            binding.rechargeLL.setVisibility(View.VISIBLE);
            binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
            binding.redStatu.setTextColor(this.getResources().getColor(R.color.black));
        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
            setCardState("未刷卡关泵,当前不可充值");
            TipUtil.show(RechargeActivity.this, "未刷卡关泵,当前不可充值");
        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
            setCardState("叠加充值");
        } else {
@@ -135,15 +135,13 @@
            binding.rechargeReadLL.setVisibility(View.GONE);
            binding.rechargeTextLL.setVisibility(View.VISIBLE);
            binding.userName.setText(userName);
            binding.redStatu.setText(state);
            binding.redInitCode.setText(cardNumber);
            binding.redRechargeDate.setText("本卡最后购水日期:\n\n" + lastRechargeTime);
            binding.redUserCode.setText(cardInfoResult.getIccardCode());
            if (userCard != null) {
                binding.redRemainderBlance.setText(String.valueOf(iccardBalanceMoney) + " 元");
                binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 元");
                binding.redBalanceElectric.setText("充值后剩余电量:" + MornyUtil.changeF2Y(userCard.getSurplusElecticity()) + " 度");
            }
            binding.redRechargeElectric.setText("电量单价:" + QHOnLineApplication.getInstance().electriclePriceStr + "元/度");
        } else {
@@ -229,6 +227,10 @@
        //充值补扣金额=充值金额+充值前读取的卡内余额-充值回调返回卡内余额
        int deductionMorny = MornyUtil.changeY2F(morny) + mOldUserCard.getBalance() - MornyUtil.changeY2F(balance);
        if (MornyUtil.changeY2F(morny) < deductionMorny) {
            TipUtil.show(RechargeActivity.this, "当前充值金额小于补扣金额,补扣金额为" + MornyUtil.changeF2Y(deductionMorny) + "元,充值金额应大于补扣金额!");
            return;
        }
        //添加充值信息
        rechargeBean = new RechargeBean();
@@ -250,6 +252,8 @@
        rechargeBean.setState(1);
        rechargeBean.setOrderId(iccardRechargeRecordId);
        rechargeBean.setDeductionMorny(MornyUtil.changeF2Y(deductionMorny));
        rechargeBean.setAdminId(QHOnLineApplication.getInstance().adminId);
        userCard.setCardWriteState(0);
        userCard.setCardState(1);
@@ -257,8 +261,7 @@
        calendar.setTimeInMillis(time);
        userCard.setBalance(MornyUtil.changeY2F(String.valueOf(balance)));
        userCard.setSurplusElecticity(MornyUtil.changeY2F(String.valueOf(iccardBalanceElectric)));
        String sumMorny = MornyUtil.sumPrice(Float.valueOf(MornyUtil.changeF2Y(userCard.getTotalMorny())), Float.valueOf(morny));
        userCard.setTotalMorny(MornyUtil.changeY2F(sumMorny));
        userCard.setTotalMorny(MornyUtil.changeY2F(String.valueOf(totalMorny)));
        userCard.setRechargeDate(calendar);
        userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
        if (deductionMorny == 0) {
@@ -302,12 +305,18 @@
        data.put("iccardBalanceAmonunt", "0");
        //卡内剩余电量
        data.put("iccardBalanceElectric", MornyUtil.changeF2Y(userCard.getSurplusElecticity()));
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/rechargeCard", RechargeResult.class, data, new SubscriberListener<BaseResponse<RechargeResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/rechargeCard", RechargeResult.class, data, new SubscriberListener<BaseResponse<RechargeResult>>() {
            @Override
            public void onNext(BaseResponse<RechargeResult> t) {
                if (t.isSuccess()) {
                    RechargeResult rechargeResult = t.getData();
                    startNfcActivity(morny, rechargeResult.getIccardBalanceMoney(), rechargeResult.getRechargeElectricAmount(), rechargeResult.getIccardBalanceElectric(), rechargeResult.getTotalRechargeMoney(), rechargeResult.getIccardRechargeRecordId());
                    if (t.getData() != null) {
                        RechargeResult rechargeResult = t.getData();
                        startNfcActivity(morny, rechargeResult.getIccardBalanceMoney(), rechargeResult.getRechargeElectricAmount(), rechargeResult.getIccardBalanceElectric(), rechargeResult.getTotalRechargeMoney(), rechargeResult.getIccardRechargeRecordId());
                    } else {
                        TipUtil.show(RechargeActivity.this, "充值失败请重试!");
                    }
                } else {
                    TipUtil.show(RechargeActivity.this, t.getMsg());
                }
            }
        });
@@ -319,35 +328,41 @@
     *
     * @param iccardCode
     */
    public void getUserInfoAndCardInfo(String iccardCode) {
    public void getUserInfoAndCardInfo(String iccardNum, String iccardCode) {
        Map<String, Object> data = new HashMap<>();
        //ic卡信息id
        data.put("iccardNum", iccardCode);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
        data.put("iccardNum", iccardNum);
        data.put("iccardCode", 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()) {
                    //ic卡状态 0 正常 1 已注销 2 已挂失
                    if (t.getData().getIccardStatus() == 0) {
                        List<byte[]> data = NfcReadHelper.getInstence(intent, RechargeActivity.this).getOnesectorData();
                        if (!data.isEmpty()) {
                            if (!TextUtils.isEmpty(cardNumber)) {
                                cardInfoResult = t.getData();
                                setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime(), cardInfoResult.getIccardBalanceMoney(), data);
                    if (t.getData() != null) {
                        //ic卡状态 0 正常 1 已注销 2 已挂失
                        if (t.getData().getIccardStatus() == 0) {
                            List<byte[]> data = NfcReadHelper.getInstence(intent, RechargeActivity.this).getOnesectorData();
                            if (!data.isEmpty()) {
                                if (!TextUtils.isEmpty(cardNumber)) {
                                    cardInfoResult = t.getData();
                                    setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime(), data);
                                } else {
                                    TipUtil.show(RechargeActivity.this, "读取卡片失败,请重新贴卡");
                                }
                            } else {
                                TipUtil.show(RechargeActivity.this, "读取卡片失败,请重新贴卡");
                                TipUtil.show(RechargeActivity.this, "卡片识别错误,请重试!");
                            }
                        } else if (t.getData().getIccardStatus() == 1) {
                            TipUtil.show(RechargeActivity.this, "当前卡已注销");
                        } else {
                            TipUtil.show(RechargeActivity.this, "卡片识别错误,请重试!");
                            TipUtil.show(RechargeActivity.this, "当前卡已挂失");
                        }
                    } else if (t.getData().getIccardStatus() == 1) {
                        TipUtil.show(RechargeActivity.this, "当前卡已注销");
                    } else {
                        TipUtil.show(RechargeActivity.this, "当前卡已挂失");
                        TipUtil.show(RechargeActivity.this, "当前卡片错误,未能查到该卡信息!");
                    }
                } else {
                    TipUtil.show(RechargeActivity.this, t.getMsg());
                }
            }
        });