左晓为主开发手持机充值管理机
zuoxiao
2 天以前 465c8abaa982fba6868a900d25316c70afc20fb7
generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
@@ -10,6 +10,7 @@
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import com.dayu.baselibrary.net.subscribers.SubscriberListener
import com.dayu.baselibrary.utils.MornyUtil
import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
import com.dayu.general.BaseApplication
import com.dayu.general.R
@@ -24,6 +25,7 @@
import com.dayu.general.net.ApiManager
import com.dayu.general.net.BaseResponse
import com.dayu.general.tool.CardCommon.Companion.USER_CARD_TYPE_1
import com.dayu.general.tool.CardOperationType
import com.dayu.general.tool.NfcReadHelper
import com.dayu.general.tool.NfcWreatHelper
import com.dayu.general.utils.DateUtils
@@ -58,15 +60,16 @@
    // 客户ID
    private var clientId: String = ""
    private lateinit var clientInfo : ClientInfo
    private lateinit var clientInfo: ClientInfo
    // 是否已读卡
    private var isReadCard: Boolean = false
    private var orderId:String=""
    private var orderId: String = ""
    companion object {
        private const val TAG = "NewCard2Activity"
        private const val REQUEST_CODE_NFC_WRITE = 1001
    }
@@ -308,11 +311,7 @@
        // 获取工本费
        val cardFeeStr = binding.newCardCardFee.text.toString()
        val cardFee = if (cardFeeStr.isEmpty()) 0.0 else cardFeeStr.toDouble()
        // 格式化金额为两位小数
        val formattedRechargeAmount = String.format("%.2f", rechargeAmount)
        val formattedCardFee = String.format("%.2f", cardFee)
        val cardFee = if (cardFeeStr.isEmpty()) 0 else cardFeeStr.toInt()
        val remark = binding.newCardRemark.text.toString()
@@ -336,7 +335,7 @@
            object : SubscriberListener<BaseResponse<NewCardDataResult>>() {
                override fun onNext(response: BaseResponse<NewCardDataResult>) {
                    if (response.success) {
                        orderId=response.content?.orderNo.toString()
                        orderId = response.content?.orderNo.toString()
                        // 保存开卡信息到数据库
                        val cardRegistration = CardRegistrationBean(
                            cardNumber = cardPhysicalId,
@@ -357,30 +356,88 @@
                            try {
                                BaseDaoSingleton.getInstance(this@NewCard2Activity)
                                    .cardRegistrationDao().insert(cardRegistration)
                                Toast.makeText(
                                    this@NewCard2Activity,
                                    "开卡成功",
                                    Toast.LENGTH_SHORT
                                ).show()
                                setResult(RESULT_OK)
                                Intent(this@NewCard2Activity, NfcWreatActivity::class.java).apply {
                                    putExtra("cardType", USER_CARD_TYPE_1)
                                    putExtra("orderId", orderId)
                                    putExtra("orderNumber", orderId)
                                    putExtra("cardAddr", cardPhysicalId)
                                    var userCard = UserCard()
                                    userCard.areaNumber =clientInfo.districtNum
                                    userCard.userCode =clientInfo.clientNum
                                    userCard.phoneNumber =clientInfo.phone
                                    userCard.userCodeNumber = response.content?.cardNum?.toInt()!!
                                    userCard.projectCode = response.content?.projectNo?.toInt()!!
                                    userCard.balance = response.content?.balance?.toInt()!!
                                    userCard.areaNumber =
                                        response.content?.cardNum?.substring(0, 12).toString()
                                    userCard.userCode = clientInfo.clientNum
                                    userCard.phoneNumber = clientInfo.phone
                                    userCard.userCodeNumber =
                                        response.content?.cardNum?.substring(12)?.toInt()!!
                                    userCard.projectCode = response.content?.projectNo!!
                                    userCard.balance =
                                        MornyUtil.changeY2F(response.content?.balance)
//                                    userCard.surplusWater = response.content?.surplusWater?.toInt()!!
                                    userCard.waterPrice = response.content?.waterPrice?.toFloat()!!
//                                    userCard.electricPrice = response.content?.electricPrice?.toFloat()!!
                                    userCard.rechargeDate = DateUtils.parseStringToCalendar(response.content?.time)
                                    userCard.waterPrice =
                                        MornyUtil.changeY2F(response.content?.waterPrice)
                                    userCard.electricPrice =
                                        MornyUtil.changeY2F(response.content?.waterPrice)
                                    userCard.rechargeDate =
                                        DateUtils.parseStringToCalendar(response.content?.time)
                                    // 输出userCard的所有信息到日志
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "=== 开卡UserCard信息 ==="
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "卡片类型: ${userCard.cardType}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "国家行政区域号: ${userCard.areaNumber}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "用户编号: ${userCard.userCode}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "用户卡编号: ${userCard.userCodeNumber}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "完整用户编号: ${userCard.getMyUserCode()}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "手机号: ${userCard.phoneNumber}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "项目编码: ${userCard.projectCode}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "卡内余额: ${userCard.balance}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "剩余水量: ${userCard.surplusWater}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "水量单价: ${userCard.waterPrice}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "电量单价: ${userCard.electricPrice}"
                                    )
                                    android.util.Log.d(
                                        "NewCard2Activity",
                                        "充值时间: ${userCard.rechargeDate}"
                                    )
                                    android.util.Log.d("NewCard2Activity", "==================")
                                    putExtra("userCard", userCard)
                                    startActivity(this)
                                    putExtra("operationTypeCode", CardOperationType.OpenCard.code)
                                    putExtra("cardFee", cardFee)
                                    startActivityForResult(this, REQUEST_CODE_NFC_WRITE)
                                }
                            } catch (e: Exception) {
                                CrashReport.postCatchedException(e)
@@ -498,4 +555,12 @@
        }
    }
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == REQUEST_CODE_NFC_WRITE && resultCode == RESULT_OK) {
            // 写卡成功,关闭当前Activity
            finish()
        }
    }
}