显示最后一笔
diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
index 01245b0..8de47f0 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
@@ -49,7 +49,6 @@
private lateinit var vLastResult: TextView
private lateinit var vLastPayamt: TextView
private lateinit var vLastPayway: TextView
- private lateinit var vLastPayday: TextView
private lateinit var vLastPaytime: TextView
private lateinit var vLastPayFailreason: TextView
private lateinit var vLastPayFailll: LinearLayout
@@ -116,6 +115,7 @@
}
}
})
+ presenter.loadLastTransdtl()
}
private fun initView() {
@@ -130,7 +130,6 @@
vLastResult = this.findViewById<TextView>(R.id.tv_last_pay_result)
vLastPayamt = this.findViewById<TextView>(R.id.consume_last_payamt)
vLastPayway = this.findViewById<TextView>(R.id.tv_last_payway)
- vLastPayday = this.findViewById<TextView>(R.id.tv_last_payday)
vLastPaytime = this.findViewById<TextView>(R.id.tv_last_paytime)
vLastPayFailreason = this.findViewById<TextView>(R.id.tv_last_failreason)
vLastPayFailll = this.findViewById<LinearLayout>(R.id.ll_consume_last_failreason)
@@ -337,6 +336,7 @@
}
AuxScreenController.getInstance().refreshContent(auxList)
SoundUtil.playMusic(applicationContext, R.raw.consume_suc)
+ refreshRecentDtl(info)
}
override fun showConsumeHint(hint: String) {
@@ -349,6 +349,7 @@
dialogPurchase!!.showPayFail(info)
SoundUtil.playMusic(applicationContext, R.raw.consume_fail)
AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("消费失败", "原因:", info.retmsg))
+ refreshRecentDtl(info)
}
override fun showReverseSuc(info: CardUserInfoBean) {
@@ -356,23 +357,25 @@
AuxScreenController.getInstance()
.refreshContent(Arrays.asList<String>(info.retmsg, CommonUtil.showFormatAmount("金额", info.payamt)))
SoundUtil.playMusic(applicationContext, R.raw.reversal_suc)
+ refreshRecentDtl(info)
}
override fun showReverseFail(info: CardUserInfoBean) {
dialogPurchase!!.showReverseFail(info)
SoundUtil.playMusic(applicationContext, R.raw.reversal_fail)
AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("冲正失败", "原因:", info.retmsg))
+ refreshRecentDtl(info)
}
- private var lastShowRecentDatetime: String? = null
+ private var lastShowRecentTime: String? = null
private fun refreshRecentDtl(info: CardUserInfoBean?) {
if (info != null) {
lastPayInfo = info
//已显示过不在显示
- if (lastShowRecentDatetime == info.datetime) {
+ if (lastShowRecentTime == info.transtime) {
return
}
- lastShowRecentDatetime = info.datetime
+ lastShowRecentTime = info.transtime
if (info.status == PayStatus.SUC) {
when {
@@ -402,13 +405,9 @@
"市民卡"
}
val sb = StringBuilder()
- sb.append(info.datetime!!.substring(0, 4)).append("/")
- .append(info.datetime!!.substring(4, 6)).append("/")
- .append(info.datetime!!.substring(6, 8))
- vLastPayday.text = sb.toString()
- sb.setLength(0)
- sb.append(info.datetime!!.substring(8, 10)).append(":")
- .append(info.datetime!!.substring(10, 12)).append(":").append(info.datetime!!.substring(12))
+ sb.append(info.transtime?.substring(0, 2)).append(":")
+ .append(info.transtime?.substring(2, 4)).append(":")
+ .append(info.transtime?.substring(4))
vLastPaytime.text = sb.toString()
resetPayShowCounter(10 * 1000)
}
@@ -483,7 +482,6 @@
vLastResult.text = null
vLastPayamt.text = null
vLastPayway.text = null
- vLastPayday.text = null
vLastPaytime.text = null
vLastPayFailreason.text = null
}
@@ -512,8 +510,10 @@
override fun showRecentDtl(record: TransdtlUnionRecord?) {
if (record != null) {
val info = CardUserInfoBean(PublicDef.SUCCESS, "")
- info.datetime = record.transdate + record.transtime
+ info.transdate = record.transdate
+ info.transtime = record.transtime
info.username = record.username
+ info.cardno = record.cardno
info.payamt = record.payamt
info.status = record.status
info.payway = record.payway
diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
index 268a67f..4d48b61 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
@@ -3,9 +3,11 @@
import android.os.Handler
import android.os.Looper
import android.os.Message
+import com.supwisdom.activities.SPApplication
import com.supwisdom.activities.consume.bean.CardUserInfoBean
import com.supwisdom.activities.consume.mode.CardPayService
import com.supwisdom.activities.consume.mode.CodePayService
+import com.supwisdom.utils.DateUtil
import com.supwisdom.utils.LogUtil
import com.supwisdom.utils.PublicDef
import com.supwisdom.utils.ThreadPool
@@ -16,6 +18,7 @@
**/
class ConsumePresenter constructor(iConsumeView: IConsumeView) {
private val TAG = "ConsumePresenter"
+ private val pos = SPApplication.getInstance().getPos()
private val iConsumeView = iConsumeView
private val codePayRunnable = CodePayRunnable()
private lateinit var handler: Handler
@@ -94,6 +97,17 @@
codePayService.interruptPay()
}
+ fun loadLastTransdtl() {
+ ThreadPool.getShortPool().execute(Runnable {
+ val list = pos.getTransdtlUnion(DateUtil.getNowDateNoFormat(), 0, 0, 1)
+ if (list.isNotEmpty()) {
+ iConsumeView.getActivity().runOnUiThread {
+ iConsumeView.showRecentDtl(list[0])
+ }
+ }
+ })
+ }
+
private inner class CodePayRunnable : Runnable {
override fun run() {
codePayService.pay(code!!, amount)
diff --git a/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt b/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
index 499cdd3..047d57b 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
@@ -18,7 +18,8 @@
var payamt: Int = 0
var status: PayStatus? = null
var reversalFlag: ReversalFlag? = null
- var datetime: String? = null
+ var transdate: String? = null
+ var transtime: String? = null
var payway: String? = null //card,code
}
diff --git a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
index ffa329b..e1e2c0d 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
@@ -112,14 +112,14 @@
try {
doReverse()
} catch (ex: CardPayCancelFailError) {
- sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getErrorInfo(ex.message))
+ sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getRvsErrorInfo(ex.message))
} catch (ex: Exception) {
ex.printStackTrace()
LogUtil.d(
TAG, "card pay cancel exception: cardphyid=$cardphyid"
+ "exception=${CommonUtil.getExceptionStack(ex)}"
)
- sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getErrorInfo("程序异常"))
+ sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getRvsErrorInfo("程序异常"))
}
clickStat = ClickStat.INIT
}
@@ -225,12 +225,7 @@
val record = pos.getTransdtlOnlineLast() ?: throw CardPayCancelFailError("未找到联机记录")
checkOnlineReverseVaild(unionRecord, record)
saveTransdtlOnlineReverse(record)
- showRvsSucInfo(
- onlRvsRecord.payamt,
- onlRvsRecord.username,
- onlRvsRecord.cardno,
- onlRvsRecord.transdate + onlRvsRecord.transtime
- )
+ showRvsOnlSucInfo()
asyncUpload(onlRvsRecord)
}
@@ -238,12 +233,7 @@
val record = pos.getTransdtlOfflineLast() ?: throw CardPayCancelFailError("未找到离线记录")
checkOfflineReverseVaild(unionRecord, record)
saveTransdtlOfflineReverse(record)
- showRvsSucInfo(
- offRvsRecord.payamt,
- null,
- offRvsRecord.cardno,
- offRvsRecord.transdate + onlRvsRecord.transtime
- )
+ showRvsOffSucInfo()
asyncUpload(offRvsRecord)
}
@@ -334,15 +324,10 @@
}
resp = consumeApi.payConfirm(onlRecord)
result = parseConfirmResult(resp)
- if (result) {
- showRvsSucInfo(
- onlRecord.payamt,
- onlRecord.username,
- onlRecord.cardno,
- onlRecord.transdate + onlRecord.transtime
- )
- }
updateTransdtlOnline(result)
+ if (result) {
+ showOnlSucInfo()
+ }
return result
}
@@ -414,7 +399,7 @@
initTransdtlOffline()
checkCardValid()
updateTransdtlOffline(true)
- showSucInfo(offRecord.payamt, null, offRecord.cardno, offRecord.transdate + offRecord.transtime)
+ showOffSucInfo()
}
private fun checkCardValid() {
@@ -482,29 +467,61 @@
asyncUpload(offRecord)
}
- private fun showSucInfo(amount: Int, username: String?, cardno: String?, datetime: String) {
+ private fun showOnlSucInfo() {
val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
info.showtime = pos.getSysPara()!!.sucShowtime
- info.amount = amount
- info.payamt = amount
- info.username = username
- info.cardno = cardno
- info.datetime = datetime
- info.payway = "card"
- info.status = PayStatus.SUC
+ info.amount = onlRecord.payamt
+ info.payamt = onlRecord.payamt
+ info.username = onlRecord.username
+ info.cardno = onlRecord.cardno
+ info.transdate = onlRecord.transdate
+ info.transtime = onlRecord.transtime
+ info.payway = onlRecord.transtype
+ info.status = onlRecord.status
+ info.reversalFlag = onlRecord.reversalflag
sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
}
- private fun showRvsSucInfo(amount: Int, username: String?, cardno: String?, datetime: String) {
+ private fun showOffSucInfo() {
val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
info.showtime = pos.getSysPara()!!.sucShowtime
- info.amount = amount
- info.payamt = amount
- info.username = username
- info.cardno = cardno
- info.datetime = datetime
+ info.amount = offRecord.payamt
+ info.payamt = offRecord.payamt
+ info.cardno = offRecord.cardno
+ info.transdate = offRecord.transdate
+ info.transtime = offRecord.transtime
info.payway = "card"
- info.status = PayStatus.SUC
+ info.status = offRecord.status
+ info.reversalFlag = offRecord.reversalflag
+ sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
+ }
+
+ private fun showRvsOnlSucInfo() {
+ val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
+ info.showtime = pos.getSysPara()!!.sucShowtime
+ info.amount = onlRvsRecord.payamt
+ info.payamt = onlRvsRecord.payamt
+ info.username = onlRvsRecord.username
+ info.cardno = onlRvsRecord.cardno
+ info.transdate = onlRvsRecord.transdate
+ info.transtime = onlRvsRecord.transtime
+ info.payway = onlRvsRecord.transtype
+ info.status = onlRvsRecord.status
+ info.reversalFlag = onlRvsRecord.reversalflag
+ sendMsg(PublicDef.MSG_CARD_REVERSE_SUC, info)
+ }
+
+ private fun showRvsOffSucInfo() {
+ val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
+ info.showtime = pos.getSysPara()!!.sucShowtime
+ info.amount = offRvsRecord.payamt
+ info.payamt = offRvsRecord.payamt
+ info.cardno = offRvsRecord.cardno
+ info.transdate = offRvsRecord.transdate
+ info.transtime = offRvsRecord.transtime
+ info.payway = "card"
+ info.status = offRvsRecord.status
+ info.reversalFlag = offRvsRecord.reversalflag
sendMsg(PublicDef.MSG_CARD_REVERSE_SUC, info)
}
@@ -574,6 +591,24 @@
val info = CardUserInfoBean(PublicDef.ERROR, errmsg ?: "null")
info.showtime = pos.getSysPara()!!.failShowtime
info.status = PayStatus.FAIL
+ info.amount = amount
+ info.payamt = amount
+ info.payway = "card"
+ info.transdate = DateUtil.getNowDateNoFormat()
+ info.transtime = DateUtil.getNowTimeNoFormat()
+ return info
+ }
+
+ private fun getRvsErrorInfo(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 = "card"
+ info.transdate = DateUtil.getNowDateNoFormat()
+ info.transtime = DateUtil.getNowTimeNoFormat()
+ info.reversalFlag = ReversalFlag.MANUAL
return info
}
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 e301655..116a82b 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
@@ -32,12 +32,15 @@
*/
@Volatile
private var interruptedPay: Boolean = false
+ @Volatile
+ private var amount = 0
fun interruptPay() {
interruptedPay = true
}
fun pay(code: String, amount: Int) {
+ this.amount = amount
interruptedPay = false
try {
initTransdtlOnline(code, amount)
@@ -171,9 +174,12 @@
info.amount = codeRecord.payamt
info.payamt = codeRecord.payamt
info.username = codeRecord.username
- info.datetime = codeRecord.transdate + codeRecord.transtime
+ info.cardno = codeRecord.cardno
+ info.transdate = codeRecord.transdate
+ info.transtime = codeRecord.transtime
info.payway = codeRecord.transtype
- info.status = PayStatus.SUC
+ info.status = codeRecord.status
+ info.reversalFlag = codeRecord.reversalflag
sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
}
@@ -181,6 +187,11 @@
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
}
diff --git a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
index 9dcdb3e..a89d80e 100644
--- a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
+++ b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
@@ -97,6 +97,7 @@
enum class TransdtlUnion {
username,
+ cardno,
transdate,
transtime,
devseqno,
diff --git a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
index 78bae0c..973dd8d 100644
--- a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
+++ b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
@@ -24,7 +24,8 @@
.append(BeanPropEnum.TransdtlOffline.reversalflag).append(",")
.append(BeanPropEnum.TransdtlOffline.payamt).append(",")
.append(BeanPropEnum.TransdtlOffline.status).append(",")
- .append(BeanPropEnum.TransdtlOffline.cardno).append(" as ").append(BeanPropEnum.TransdtlUnion.username)
+ .append(" 'null' as ").append(BeanPropEnum.TransdtlUnion.username).append(",")
+ .append(BeanPropEnum.TransdtlOffline.cardno).append(",")
.append(",")
.append(BeanPropEnum.TransdtlOffline.upflag)
.append(" from ").append(DBTransdtlHelper.TABLE_NAME_DTL_OFFLINE)
@@ -38,6 +39,7 @@
.append(BeanPropEnum.TransdtlOnline.payamt).append(",")
.append(BeanPropEnum.TransdtlOnline.status).append(",")
.append(BeanPropEnum.TransdtlOnline.username).append(",")
+ .append(BeanPropEnum.TransdtlOnline.cardno).append(",")
.append(BeanPropEnum.TransdtlOnline.upflag)
.append(" from ").append(DBTransdtlHelper.TABLE_NAME_DTL_ONLINE)
}
@@ -97,6 +99,10 @@
record.devseqno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.devseqno.toString()))
record.payway = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.payway.toString()))
record.username = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.username.toString()))
+ if (record.username == "null") {
+ record.username = null
+ }
+ record.cardno = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.cardno.toString()))
var flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.reversalflag.toString()))
when (flag) {
ReversalFlag.NONE.toString() -> record.reversalflag = ReversalFlag.NONE
diff --git a/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt b/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
index bc78c6f..967fbd8 100644
--- a/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
@@ -6,6 +6,7 @@
**/
class TransdtlUnionRecord {
var username: String? = null
+ var cardno: String? = null
var transdate: String? = null
var transtime: String? = null
var devseqno: Int = 0
diff --git a/app/src/main/java/com/supwisdom/utils/PublicDef.kt b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
index b67e05b..d55fa9f 100644
--- a/app/src/main/java/com/supwisdom/utils/PublicDef.kt
+++ b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
@@ -31,7 +31,7 @@
const val MSG_USER_INFO_SHOW = 17
const val MSG_USER_INFO_CLEAR = 18
const val MSG_LINK_STATUS = 19
- const val MSG_CODE_PAYING_CANCEL = 19
+ const val MSG_CODE_PAYING_CANCEL = 20
/*************************不能重复*****************************/
/**
* 卡消费标志(1 byte)
diff --git a/app/src/main/res/layout/activity_consume.xml b/app/src/main/res/layout/activity_consume.xml
index 08a845f..d453add 100644
--- a/app/src/main/res/layout/activity_consume.xml
+++ b/app/src/main/res/layout/activity_consume.xml
@@ -382,31 +382,6 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
- android:text="支付日期: "
- android:textColor="@color/black"
- android:textSize="@dimen/consume_text_size2"/>
-
- <TextView
- android:id="@+id/tv_last_payday"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:maxLines="1"
- android:text=""
- android:textColor="@color/blue"
- android:textSize="@dimen/consume_text_size2"
- android:textStyle="bold"/>
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:paddingLeft="10dp"
- android:paddingTop="5dp">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
android:text="支付时间: "
android:textColor="@color/black"
android:textSize="@dimen/consume_text_size2"/>