反扫消费查询取消提示手机结果为准
diff --git a/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt b/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt
index 989ef92..4485976 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt
@@ -1,222 +1,236 @@
-package com.supwisdom.activities.consume.mode
-
-import android.os.Handler
-import android.os.Message
-import com.supwisdom.activities.SPApplication
-import com.supwisdom.activities.consume.bean.CardPayConfirmRetBean
-import com.supwisdom.activities.consume.bean.CardPayInitRetBean
-import com.supwisdom.activities.consume.bean.CardUserInfoBean
-import com.supwisdom.activities.consume.bean.LastPayBean
-import com.supwisdom.entity.PayStatus
-import com.supwisdom.entity.ReversalFlag
-import com.supwisdom.entity.TransdtlOnlineRecord
-import com.supwisdom.exception.CardPayFailError
-import com.supwisdom.okhttp.TransResp
-import com.supwisdom.utils.*
-import org.apache.http.HttpStatus
-
-/**
- ** create by zzq on 2019/7/30
- ** @desc 二维码消费
- **/
-class CodePayService constructor(private val handler: Handler) {
- private val TAG = "CodePayService"
- private val pos = SPApplication.getInstance().getPos()
- private lateinit var codeRecord: TransdtlOnlineRecord
- private val consumeApi = ConsumeApi()
- /**
- * 消费过程中可按键主动取消
- * 手动取消后不冲正,以手机消费结果为准
- */
- @Volatile
- private var interruptedPay: Boolean = false
- @Volatile
- private var amount = 0
- var isFixMode = false
- private val lastPayBean = LastPayBean()
-
- fun interruptPay() {
- interruptedPay = true
- }
-
- fun pay(code: String, amount: Int) {
- this.amount = amount
- interruptedPay = false
- try {
- if (isFixMode) {
- if (lastPayBean.code == code) {
- val gap = (pos.getSysPara()?.fixpayGap ?: 10).toLong()
- if (System.currentTimeMillis() - lastPayBean.suctime < gap * 1000) {
- throw CardPayFailError("${gap}s内不能连续消费")
- }
- }
- }
- initTransdtlOnline(code, amount)
- var resp = consumeApi.payInit(codeRecord)
- parseInitResult(resp)
- resp = consumeApi.payConfirm(codeRecord)
- var result = parseConfirmResult(resp)
- if (!result) {
- result = payResultQuery()
- }
- updateTransdtlOnline(result)
- if (result) {
- showSucInfo()
- }
- } catch (ex: CardPayFailError) {
- sendMsg(PublicDef.MSG_CARD_PAY_FAIL, getErrorInfo(ex.message))
- }
- }
-
- private fun payResultQuery(): Boolean {
- sendMsg(PublicDef.MSG_PAYING_QUERY, "谨慎操作查询取消")
- LogUtil.d(TAG, "扫码消费确认超时,进行查询操作:billno=${codeRecord.billno}")
- sleepWithCancel(1500)
- var searchCnt = 1
- while (!interruptedPay) {
- sendMsg(PublicDef.MSG_CARD_PAYING, String.format("正在%d次查询...", searchCnt))
- val resp = consumeApi.payQuery(codeRecord)
- if (resp != null) {
- val result = parseConfirmResult(resp)
- if (!result) {
- searchCnt++
- sendMsg(PublicDef.MSG_CARD_PAYING, String.format("等待%d次查询...", searchCnt))
- sleepWithCancel(5000)
- continue
- }
- return result
- } else {
- searchCnt++
- sendMsg(PublicDef.MSG_CARD_PAYING, String.format("等待%d次查询...", searchCnt))
- sleepWithCancel(3000)
- }
- }
- LogUtil.d(TAG, "扫码消费确认超时,操作员手工取消查询:billno=${codeRecord.billno}")
- return false
- }
-
- private fun parseConfirmResult(resp: TransResp?): Boolean {
- if (resp == null) {
- SPApplication.getInstance().setEpayLinking(false)
- return false
- }
- if (resp.retcode != HttpStatus.SC_OK) {
- throw CardPayFailError("错误码=${resp.retcode}")
- }
- val retBean = try {
- GsonUtil.GsonToBean(resp.retjson!!, CardPayConfirmRetBean::class.java)
- } catch (ex: Exception) {
- throw CardPayFailError("json异常:${ex.message}")
- }
- if (retBean.retcode != PublicDef.SUCCESS) {
- throw CardPayFailError(retBean.getErrorMsg())
- }
- if (retBean.require_query) {
- // 等待查询
- return false
- }
- codeRecord.payamt = retBean.amount
- codeRecord.extraamt = retBean.extraamt
- return true
- }
-
- private fun parseInitResult(resp: TransResp?): Boolean {
- if (resp == null) {
- SPApplication.getInstance().setEpayLinking(false)
- throw CardPayFailError("请求超时")
- }
- if (resp.retcode != HttpStatus.SC_OK) {
- throw CardPayFailError("错误码=${resp.retcode}")
- }
- val retBean = try {
- GsonUtil.GsonToBean(resp.retjson!!, CardPayInitRetBean::class.java)
- } catch (ex: Exception) {
- throw CardPayFailError("json异常:${ex.message}")
- }
- if (retBean.retcode != PublicDef.SUCCESS) {
- throw CardPayFailError(retBean.getErrorMsg())
- }
- codeRecord.billno = retBean.billno
- codeRecord.username = retBean.username
- return true
- }
-
- private fun initTransdtlOnline(code: String, amount: Int) {
- codeRecord = TransdtlOnlineRecord()
- var seqno = pos.getTransdtlOnlineMaxSeqno()
- if (seqno == 0) {
- seqno = pos.getDynamicPara()?.onlineseqno ?: 0
- }
- codeRecord.devphyid = pos.getConfigPara()!!.devphyid
- codeRecord.transdate = DateUtil.getNowDateNoFormat()
- codeRecord.transtime = DateUtil.getNowTimeNoFormat()
- codeRecord.devseqno = seqno + 1
- codeRecord.qrcode = code
- codeRecord.payamt = amount
- codeRecord.reversalflag = ReversalFlag.NONE
- codeRecord.extraamt = 0
- codeRecord.transtype = "code"
- codeRecord.status = PayStatus.INIT
- codeRecord.upflag = 1
- if (!pos.saveTransdtlOnline(codeRecord)) {
- throw CardPayFailError("保存流水失败")
- }
- }
-
- private fun updateTransdtlOnline(issuccess: Boolean) {
- if (issuccess) {
- codeRecord.status = PayStatus.SUC
- } else {
- codeRecord.status = PayStatus.FAIL
- }
- codeRecord.upflag = 1
- pos.updateTransdtlOnline(codeRecord)
- }
-
- private fun sleepWithCancel(ms: Long) {
- var sum: Long = 0
- while (!interruptedPay) {
- CommonUtil.doSleep(100)
- sum += 100
- if (sum > ms) {
- break
- }
- }
- }
-
- private fun showSucInfo() {
- lastPayBean.code = codeRecord.qrcode
- lastPayBean.suctime = System.currentTimeMillis()
- val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
- info.showtime = pos.getSysPara()!!.sucShowtime
- info.amount = codeRecord.payamt
- info.payamt = codeRecord.payamt
- info.username = codeRecord.username
- info.cardno = codeRecord.cardno
- info.transdate = codeRecord.transdate
- info.transtime = codeRecord.transtime
- info.payway = codeRecord.transtype
- info.status = codeRecord.status
- info.reversalFlag = codeRecord.reversalflag
- sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
- }
-
- private fun getErrorInfo(errmsg: String?): CardUserInfoBean {
- val info = CardUserInfoBean(PublicDef.ERROR, errmsg ?: "null")
- info.showtime = pos.getSysPara()!!.failShowtime
- info.status = PayStatus.FAIL
- info.amount = amount
- info.payamt = amount
- info.payway = "code"
- info.transdate = DateUtil.getNowDateNoFormat()
- info.transtime = DateUtil.getNowTimeNoFormat()
- return info
- }
-
- private fun sendMsg(code: Int, obj: Any) {
- val msg = Message()
- msg.what = code
- msg.obj = obj
- handler.sendMessage(msg)
- }
+package com.supwisdom.activities.consume.mode
+
+import android.os.Handler
+import android.os.Message
+import com.supwisdom.activities.SPApplication
+import com.supwisdom.activities.consume.bean.CardPayConfirmRetBean
+import com.supwisdom.activities.consume.bean.CardPayInitRetBean
+import com.supwisdom.activities.consume.bean.CardUserInfoBean
+import com.supwisdom.activities.consume.bean.LastPayBean
+import com.supwisdom.entity.PayStatus
+import com.supwisdom.entity.ReversalFlag
+import com.supwisdom.entity.TransdtlOnlineRecord
+import com.supwisdom.exception.CardPayFailError
+import com.supwisdom.okhttp.TransResp
+import com.supwisdom.utils.*
+import org.apache.http.HttpStatus
+
+/**
+ ** create by zzq on 2019/7/30
+ ** @desc 二维码消费
+ **/
+class CodePayService constructor(private val handler: Handler) {
+ private val TAG = "CodePayService"
+ private val pos = SPApplication.getInstance().getPos()
+ private lateinit var codeRecord: TransdtlOnlineRecord
+ private val consumeApi = ConsumeApi()
+
+ /**
+ * 消费过程中可按键主动取消
+ * 手动取消后不冲正,以手机消费结果为准
+ */
+ @Volatile
+ private var interruptedPay: Boolean = false
+
+ @Volatile
+ private var amount = 0
+ var isFixMode = false
+ private val lastPayBean = LastPayBean()
+
+ fun interruptPay() {
+ interruptedPay = true
+ }
+
+ fun pay(code: String, amount: Int) {
+ this.amount = amount
+ interruptedPay = false
+ try {
+ if (isFixMode) {
+ if (lastPayBean.code == code) {
+ val gap = (pos.getSysPara()?.fixpayGap ?: 10).toLong()
+ if (System.currentTimeMillis() - lastPayBean.suctime < gap * 1000) {
+ throw CardPayFailError("${gap}s内不能连续消费")
+ }
+ }
+ }
+ initTransdtlOnline(code, amount)
+ var resp = consumeApi.payInit(codeRecord)
+ parseInitResult(resp)
+ resp = consumeApi.payConfirm(codeRecord)
+ var result = parseConfirmResult(resp)
+ if (!result) {
+ result = payResultQuery()
+ updateTransdtlOnlineHalfBreak(result)
+ } else {
+ updateTransdtlOnline(result)
+ }
+ if (result) {
+ showSucInfo()
+ }
+ } catch (ex: CardPayFailError) {
+ sendMsg(PublicDef.MSG_CARD_PAY_FAIL, getErrorInfo(ex.message))
+ }
+ }
+
+ private fun payResultQuery(): Boolean {
+ sendMsg(PublicDef.MSG_PAYING_QUERY, "谨慎操作查询取消")
+ LogUtil.d(TAG, "扫码消费确认超时,进行查询操作:billno=${codeRecord.billno}")
+ sleepWithCancel(1500)
+ var searchCnt = 1
+ while (!interruptedPay) {
+ sendMsg(PublicDef.MSG_CARD_PAYING, String.format("正在%d次查询...", searchCnt))
+ val resp = consumeApi.payQuery(codeRecord)
+ if (resp != null) {
+ val result = parseConfirmResult(resp)
+ if (!result) {
+ searchCnt++
+ sendMsg(PublicDef.MSG_CARD_PAYING, String.format("等待%d次查询...", searchCnt))
+ sleepWithCancel(3000)
+ continue
+ }
+ return result
+ } else {
+ searchCnt++
+ sendMsg(PublicDef.MSG_CARD_PAYING, String.format("等待%d次查询...", searchCnt))
+ sleepWithCancel(3000)
+ }
+ }
+ LogUtil.d(TAG, "扫码消费确认超时,操作员手工取消查询:billno=${codeRecord.billno}")
+ return false
+ }
+
+ private fun parseConfirmResult(resp: TransResp?): Boolean {
+ if (resp == null) {
+ SPApplication.getInstance().setEpayLinking(false)
+ return false
+ }
+ if (resp.retcode != HttpStatus.SC_OK) {
+ throw CardPayFailError("错误码=${resp.retcode}")
+ }
+ val retBean = try {
+ GsonUtil.GsonToBean(resp.retjson!!, CardPayConfirmRetBean::class.java)
+ } catch (ex: Exception) {
+ throw CardPayFailError("json异常:${ex.message}")
+ }
+ if (retBean.retcode != PublicDef.SUCCESS) {
+ throw CardPayFailError(retBean.getErrorMsg())
+ }
+ if (retBean.require_query) {
+ // 等待查询
+ return false
+ }
+ codeRecord.payamt = retBean.amount
+ codeRecord.extraamt = retBean.extraamt
+ return true
+ }
+
+ private fun parseInitResult(resp: TransResp?): Boolean {
+ if (resp == null) {
+ SPApplication.getInstance().setEpayLinking(false)
+ throw CardPayFailError("请求超时")
+ }
+ if (resp.retcode != HttpStatus.SC_OK) {
+ throw CardPayFailError("错误码=${resp.retcode}")
+ }
+ val retBean = try {
+ GsonUtil.GsonToBean(resp.retjson!!, CardPayInitRetBean::class.java)
+ } catch (ex: Exception) {
+ throw CardPayFailError("json异常:${ex.message}")
+ }
+ if (retBean.retcode != PublicDef.SUCCESS) {
+ throw CardPayFailError(retBean.getErrorMsg())
+ }
+ codeRecord.billno = retBean.billno
+ codeRecord.username = retBean.username
+ return true
+ }
+
+ private fun initTransdtlOnline(code: String, amount: Int) {
+ codeRecord = TransdtlOnlineRecord()
+ var seqno = pos.getTransdtlOnlineMaxSeqno()
+ if (seqno == 0) {
+ seqno = pos.getDynamicPara()?.onlineseqno ?: 0
+ }
+ codeRecord.devphyid = pos.getConfigPara()!!.devphyid
+ codeRecord.transdate = DateUtil.getNowDateNoFormat()
+ codeRecord.transtime = DateUtil.getNowTimeNoFormat()
+ codeRecord.devseqno = seqno + 1
+ codeRecord.qrcode = code
+ codeRecord.payamt = amount
+ codeRecord.reversalflag = ReversalFlag.NONE
+ codeRecord.extraamt = 0
+ codeRecord.transtype = "code"
+ codeRecord.status = PayStatus.INIT
+ codeRecord.upflag = 1
+ if (!pos.saveTransdtlOnline(codeRecord)) {
+ throw CardPayFailError("保存流水失败")
+ }
+ }
+
+ private fun updateTransdtlOnline(issuccess: Boolean) {
+ if (issuccess) {
+ codeRecord.status = PayStatus.SUC
+ } else {
+ codeRecord.status = PayStatus.FAIL
+ }
+ codeRecord.upflag = 1
+ pos.updateTransdtlOnline(codeRecord)
+ }
+
+ private fun updateTransdtlOnlineHalfBreak(issuccess: Boolean) {
+ if (issuccess) {
+ codeRecord.status = PayStatus.SUC
+ } else {
+ codeRecord.status = PayStatus.UNCONFIRM
+ }
+ codeRecord.upflag = 1
+ pos.updateTransdtlOnline(codeRecord)
+ }
+
+ private fun sleepWithCancel(ms: Long) {
+ var sum: Long = 0
+ while (!interruptedPay) {
+ CommonUtil.doSleep(100)
+ sum += 100
+ if (sum > ms) {
+ break
+ }
+ }
+ }
+
+ private fun showSucInfo() {
+ lastPayBean.code = codeRecord.qrcode
+ lastPayBean.suctime = System.currentTimeMillis()
+ val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
+ info.showtime = pos.getSysPara()!!.sucShowtime
+ info.amount = codeRecord.payamt
+ info.payamt = codeRecord.payamt
+ info.username = codeRecord.username
+ info.cardno = codeRecord.cardno
+ info.transdate = codeRecord.transdate
+ info.transtime = codeRecord.transtime
+ info.payway = codeRecord.transtype
+ info.status = codeRecord.status
+ info.reversalFlag = codeRecord.reversalflag
+ sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
+ }
+
+ private fun getErrorInfo(errmsg: String?): CardUserInfoBean {
+ val info = CardUserInfoBean(PublicDef.ERROR, errmsg ?: "null")
+ info.showtime = pos.getSysPara()!!.failShowtime
+ info.status = PayStatus.FAIL
+ info.amount = amount
+ info.payamt = amount
+ info.payway = "code"
+ info.transdate = DateUtil.getNowDateNoFormat()
+ info.transtime = DateUtil.getNowTimeNoFormat()
+ return info
+ }
+
+ private fun sendMsg(code: Int, obj: Any) {
+ val msg = Message()
+ msg.what = code
+ msg.obj = obj
+ handler.sendMessage(msg)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/transdtl/TransdtlActivity.kt b/app/src/main/java/com/supwisdom/activities/transdtl/TransdtlActivity.kt
index 877e944..e76c109 100644
--- a/app/src/main/java/com/supwisdom/activities/transdtl/TransdtlActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/transdtl/TransdtlActivity.kt
@@ -25,6 +25,7 @@
private lateinit var vSeqno: TextView
private lateinit var vContent: TextView
private var isSearching: Boolean = false
+
@Volatile
private var keyActive = true
private var hasdtlFlag = true
@@ -144,6 +145,9 @@
} else {
"消费成功"
}
+ } else if (record.status == PayStatus.UNCONFIRM) {
+ //反扫消费查询超时
+ "以手机结果为准"
} else {
if (record.reversalflag == ReversalFlag.AUTO ||
record.reversalflag == ReversalFlag.MANUAL
@@ -220,7 +224,10 @@
counter!!.start()
}
- private inner class ContinuePressTimer internal constructor(millisInFuture: Long, countDownInterval: Long) :
+ private inner class ContinuePressTimer internal constructor(
+ millisInFuture: Long,
+ countDownInterval: Long
+ ) :
CountDownTimer(millisInFuture, countDownInterval) {
override fun onTick(millisUntilFinished: Long) {
diff --git a/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt b/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
index e82f9d8..790a7fb 100644
--- a/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
+++ b/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
@@ -12,7 +12,7 @@
SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
companion object {
private val DB_NAME = "db_transdtl"
- private val VERSION = 1
+ private val VERSION = 2
private var instance: DBTransdtlHelper? = null
const val TABLE_NAME_DTL_ONLINE = "tb_dtl_online"
@@ -52,6 +52,8 @@
+ BeanPropEnum.TransdtlOnline.reversalbillno + " varchar(32) default 0,"
+ BeanPropEnum.TransdtlOnline.status + " varchar(8) default 0,"
+ BeanPropEnum.TransdtlOnline.upflag + " integer default 0)")
+ private val CREATE_INDEX_NAME_DTLONL_TRANSDATE = ("create index idx_dtlonl_transdate on "
+ + TABLE_NAME_DTL_ONLINE + " (" + BeanPropEnum.TransdtlOnline.transdate + ")")
private val CRAETE_TABLE_NAME_DTL_OFFLINE = ("create table IF NOT EXISTS "
+ TABLE_NAME_DTL_OFFLINE + " ( "
+ BeanPropEnum.TransdtlOffline.devphyid + " varchar(8) default 0,"
@@ -68,14 +70,22 @@
+ BeanPropEnum.TransdtlOffline.reversaltranstime + " varchar(6) default 0,"
+ BeanPropEnum.TransdtlOffline.status + " varchar(8) default 0,"
+ BeanPropEnum.TransdtlOffline.upflag + " integer default 0)")
+ private val CREATE_INDEX_NAME_DTLOFF_TRANSDATE = ("create index idx_dtloff_transdate on "
+ + TABLE_NAME_DTL_OFFLINE + " ( " + BeanPropEnum.TransdtlOffline.transdate + ")")
override fun onCreate(db: SQLiteDatabase) {
db.execSQL(CRAETE_TABLE_NAME_DTL_ONLINE)
db.execSQL(CRAETE_TABLE_NAME_DTL_OFFLINE)
+ db.execSQL(CREATE_INDEX_NAME_DTLONL_TRANSDATE)
+ db.execSQL(CREATE_INDEX_NAME_DTLOFF_TRANSDATE)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
if (oldVersion < newVersion) {
+ if (oldVersion < 2 && newVersion >= 2) {
+ db.execSQL(CREATE_INDEX_NAME_DTLONL_TRANSDATE)
+ db.execSQL(CREATE_INDEX_NAME_DTLOFF_TRANSDATE)
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/TransdtlOnlineDao.kt b/app/src/main/java/com/supwisdom/db/TransdtlOnlineDao.kt
index f293c0f..37a97be 100644
--- a/app/src/main/java/com/supwisdom/db/TransdtlOnlineDao.kt
+++ b/app/src/main/java/com/supwisdom/db/TransdtlOnlineDao.kt
@@ -212,6 +212,7 @@
PayStatus.INIT.toString() -> record.status = PayStatus.INIT
PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
PayStatus.SUC.toString() -> record.status = PayStatus.SUC
+ PayStatus.UNCONFIRM.toString() -> record.status = PayStatus.UNCONFIRM
else -> record.status = PayStatus.INIT
}
record.upflag =
diff --git a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
index f745fc1..3d9c305 100644
--- a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
+++ b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
@@ -58,9 +58,10 @@
("select * from ("
+ tablesql.toString()
+ ") where " + BeanPropEnum.TransdtlUnion.transdate + "='" + date
- + "' and " + BeanPropEnum.TransdtlUnion.status + "='"
- + PayStatus.SUC.toString()
- + "' order by " + BeanPropEnum.TransdtlUnion.transtime
+ + "' and (" + BeanPropEnum.TransdtlUnion.status + "='"
+ + PayStatus.SUC.toString() + "' or " + BeanPropEnum.TransdtlUnion.status + "='"
+ + PayStatus.UNCONFIRM.toString()
+ + "') order by " + BeanPropEnum.TransdtlUnion.transtime
+ " desc ")
}
else -> {
@@ -122,6 +123,7 @@
PayStatus.INIT.toString() -> record.status = PayStatus.INIT
PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
PayStatus.SUC.toString() -> record.status = PayStatus.SUC
+ PayStatus.UNCONFIRM.toString() -> record.status = PayStatus.UNCONFIRM
else -> record.status = PayStatus.INIT
}
record.upflag =
diff --git a/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt b/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
index 967fbd8..5030919 100644
--- a/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
@@ -1,40 +1,42 @@
-package com.supwisdom.entity
-
-/**
- ** create by zzq on 2019/7/25
- ** @desc
- **/
-class TransdtlUnionRecord {
- var username: String? = null
- var cardno: String? = null
- var transdate: String? = null
- var transtime: String? = null
- var devseqno: Int = 0
- var payway: String? = null //card,code,offcard
- var reversalflag: ReversalFlag? = null //消费none 自动冲正auto 手动撤销 manual
- var payamt: Int = 0
- var status: PayStatus? = null // init,fail,suc
- var upflag: Int = 0
-}
-
-/**
- * NONE -- 正常消费
- * AUTO -- 自动冲正
- * MANUAL -- 手动撤销
- */
-enum class ReversalFlag {
- NONE,
- AUTO,
- MANUAL
-}
-
-/**
- * INIT -- 初始化
- * FAIL -- 支付失败
- * SUC --支付成功
- */
-enum class PayStatus {
- INIT,
- FAIL,
- SUC
+package com.supwisdom.entity
+
+/**
+ ** create by zzq on 2019/7/25
+ ** @desc
+ **/
+class TransdtlUnionRecord {
+ var username: String? = null
+ var cardno: String? = null
+ var transdate: String? = null
+ var transtime: String? = null
+ var devseqno: Int = 0
+ var payway: String? = null //card,code,offcard
+ var reversalflag: ReversalFlag? = null //消费none 自动冲正auto 手动撤销 manual
+ var payamt: Int = 0
+ var status: PayStatus? = null // init,fail,suc
+ var upflag: Int = 0
+}
+
+/**
+ * NONE -- 正常消费
+ * AUTO -- 自动冲正
+ * MANUAL -- 手动撤销
+ */
+enum class ReversalFlag {
+ NONE,
+ AUTO,
+ MANUAL
+}
+
+/**
+ * INIT -- 初始化
+ * FAIL -- 支付失败
+ * SUC --支付成功
+ * UNCONFIRM --未确认
+ */
+enum class PayStatus {
+ INIT,
+ FAIL,
+ SUC,
+ UNCONFIRM
}
\ No newline at end of file