| | |
| | | import com.dayu.baselibrary.utils.ToastUtil |
| | | import com.dayu.general.bean.card.ClearCard |
| | | import com.dayu.general.bean.card.UserCard |
| | | import com.dayu.general.tool.CardCommon |
| | | import com.dayu.general.tool.CardOperationType |
| | | import com.dayu.general.dao.BaseDaoSingleton |
| | | import com.dayu.general.databinding.ActivityNfcWriteGeBinding |
| | | import com.dayu.general.net.ApiManager |
| | | import com.dayu.general.net.BaseResponse |
| | | import com.dayu.general.tool.CardOperationType |
| | | import com.dayu.general.tool.NfcReadHelper |
| | | import com.dayu.general.tool.NfcWreatHelper |
| | | import com.dayu.general.dao.BaseDaoSingleton |
| | | import com.tencent.bugly.crashreport.CrashReport |
| | | import kotlinx.coroutines.launch |
| | | import java.lang.StringBuilder |
| | | |
| | | /** |
| | | * @author: zuo |
| | |
| | | // 充值相关金额 |
| | | private var rechargeAmount = 0.0 |
| | | private var bonusAmount = 0.0 |
| | | |
| | | // 销卡相关信息 |
| | | private var refundAmount = 0.0 |
| | | private var cardBalance = 0.0 |
| | | |
| | | // 返还相关信息 |
| | | private var returnAmount = 0.0 |
| | | |
| | | //订单编号 |
| | | var orderNumber = "" |
| | |
| | | rechargeAmount = intent?.getDoubleExtra("rechargeAmount", 0.0) ?: 0.0 |
| | | bonusAmount = intent?.getDoubleExtra("bonusAmount", 0.0) ?: 0.0 |
| | | |
| | | // 获取销卡相关信息 |
| | | refundAmount = intent?.getDoubleExtra("refundAmount", 0.0) ?: 0.0 |
| | | cardBalance = intent?.getDoubleExtra("cardBalance", 0.0) ?: 0.0 |
| | | |
| | | // 获取返还相关信息 |
| | | returnAmount = intent?.getDoubleExtra("returnAmount", 0.0) ?: 0.0 |
| | | |
| | | if (intent?.hasExtra("cardFee") == true) { |
| | | cardFee = intent?.getIntExtra("cardFee", 0) ?: 0 |
| | | } |
| | |
| | | if (operationTypeCode != -1) { |
| | | when (operationType) { |
| | | CardOperationType.CleanCard -> { |
| | | binding?.cardData?.text = "清零卡写卡" |
| | | val textData = StringBuilder() |
| | | |
| | | // 判断是否来自销卡操作(有退款金额或卡内余额信息) |
| | | if (refundAmount > 0 || cardBalance > 0) { |
| | | textData.append("销卡清零操作\n") |
| | | textData.append("卡地址:$cardAddr\n") |
| | | |
| | | if (cardBalance > 0) { |
| | | textData.append("卡内余额:${String.format("%.2f", cardBalance)}元\n") |
| | | } |
| | | |
| | | if (refundAmount > 0) { |
| | | textData.append("退款金额:${String.format("%.2f", refundAmount)}元") |
| | | } else { |
| | | textData.append("无退款金额") |
| | | } |
| | | } else { |
| | | textData.append("清零卡写卡") |
| | | } |
| | | |
| | | binding?.cardData?.text = textData.toString() |
| | | } |
| | | |
| | | CardOperationType.OpenCard -> { |
| | |
| | | binding?.cardData?.text = textData.toString() |
| | | } |
| | | |
| | | CardOperationType.CancelCard -> TODO() |
| | | CardOperationType.CancelCard -> { |
| | | var textData = StringBuilder() |
| | | textData.append("销卡\n") |
| | | textData.append("卡内余额:" + MornyUtil.changeF2Y(userCard.balance) + "元\n") |
| | | textData.append("退款金额:" + refundAmount + "元") |
| | | binding?.cardData?.text = textData.toString() |
| | | } |
| | | |
| | | CardOperationType.ReturnCard -> { |
| | | var textData = StringBuilder() |
| | | textData.append("返还\n") |
| | | textData.append("卡内余额:" + MornyUtil.changeF2Y(userCard.balance) + "元\n") |
| | | textData.append("返还金额:" + returnAmount + "元") |
| | | binding?.cardData?.text = textData.toString() |
| | | } |
| | | |
| | | CardOperationType.CheckCard -> TODO() |
| | | CardOperationType.DeductCard -> TODO() |
| | | CardOperationType.ReplaceCard -> TODO() |
| | |
| | | // 确保Toast在主线程中调用 |
| | | runOnUiThread { |
| | | if (success) { |
| | | postCardData(cardType, cardAddr) |
| | | postCardData(cardAddr) |
| | | ToastUtil.show("写卡成功!") |
| | | } else { |
| | | // 处理写卡失败的情况 |
| | |
| | | // 确保Toast在主线程中调用 |
| | | runOnUiThread { |
| | | if (flag) { |
| | | postCardData(cardType, cardAddr) |
| | | postCardData(cardAddr) |
| | | |
| | | } else { |
| | | ToastUtil.show("写卡失败: ${msg ?: "未知错误"}") |
| | |
| | | // 确保Toast在主线程中调用 |
| | | runOnUiThread { |
| | | if (flag) { |
| | | postCardData(cardType, cardAddr) |
| | | ToastUtil.show("充值写卡成功!") |
| | | postCardData(cardAddr) |
| | | } else { |
| | | ToastUtil.show("充值写卡失败: ${msg ?: "未知错误"}") |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | CardOperationType.CancelCard -> TODO() |
| | | CardOperationType.CancelCard -> { |
| | | var userCard = UserCard() |
| | | userCard.cardType = "00"; |
| | | nfcWreatHelper.writeUserDataAsync(userCard, object : NFCCallBack { |
| | | override fun isSusses(flag: Boolean, msg: String?) { |
| | | // 确保Toast在主线程中调用 |
| | | runOnUiThread { |
| | | if (flag) { |
| | | postCardData(cardAddr) |
| | | } else { |
| | | ToastUtil.show("销卡写卡失败: ${msg ?: "未知错误"}") |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | CardOperationType.ReturnCard -> { |
| | | nfcWreatHelper.writeUserDataAsync(userCard, object : NFCCallBack { |
| | | override fun isSusses(flag: Boolean, msg: String?) { |
| | | // 确保Toast在主线程中调用 |
| | | runOnUiThread { |
| | | if (flag) { |
| | | postCardData(cardAddr) |
| | | } else { |
| | | ToastUtil.show("返还写卡失败: ${msg ?: "未知错误"}") |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | CardOperationType.CheckCard -> TODO() |
| | | CardOperationType.DeductCard -> TODO() |
| | | CardOperationType.ReplaceCard -> TODO() |
| | |
| | | finish() |
| | | Intent(this@NfcWreatActivity, CardWriteSuccessActivity::class.java).apply { |
| | | putExtra("cardNumber", cardNumber) |
| | | putExtra("operationTypeCode", operationTypeCode) |
| | | startActivity(this) |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | fun postCardData(cardType: String, cardAddr: String) { |
| | | when (cardType) { |
| | | CardCommon.CHECK_CARD -> { |
| | | binding?.cardData?.text = "写用户卡" |
| | | } |
| | | } |
| | | fun postCardData(cardAddr: String) { |
| | | |
| | | val map = mutableMapOf<String, Any>() |
| | | |
| | | if (cardAddr.isNotEmpty()) { |
| | |
| | | object : SubscriberListener<BaseResponse<String>>() { |
| | | override fun onNext(t: BaseResponse<String>) { |
| | | if (t.success) { |
| | | |
| | | updateCardWrittenStatus(cardAddr) |
| | | |
| | | |
| | | } else { |
| | | // 处理搜索失败的情况 |
| | | ToastUtil.show(t.msg) |