init
diff --git a/app/src/main/java/com/supwisdom/activities/YktSession.kt b/app/src/main/java/com/supwisdom/activities/YktSession.kt
index 5975932..54d8dc7 100644
--- a/app/src/main/java/com/supwisdom/activities/YktSession.kt
+++ b/app/src/main/java/com/supwisdom/activities/YktSession.kt
@@ -51,10 +51,6 @@
NetworkHandler.getInstance().setCommTime(commTime)
}
- fun getWebAPISession(): WebAPISession {
- return mSession!!
- }
-
// post
fun sendYktRequestPost(uri: String, signdata: String, params: WebParams): TransResp? {
val timestamp = DateUtil.getNowDateTimeNoFormat()
diff --git a/app/src/main/java/com/supwisdom/activities/cardlib/CardlibActivity.kt b/app/src/main/java/com/supwisdom/activities/cardlib/CardlibActivity.kt
index c6119a2..fc520a8 100644
--- a/app/src/main/java/com/supwisdom/activities/cardlib/CardlibActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/cardlib/CardlibActivity.kt
@@ -14,7 +14,6 @@
import com.supwisdom.auxscreen.AuxScreenController
import com.supwisdom.utils.AppExitUtil
import com.supwisdom.utils.DateUtil
-import com.supwisdom.utils.PublicDef
import com.supwisdom.view.BigProgressDialog
/**
@@ -86,7 +85,6 @@
override fun showInitCardlibResult(issuccess: Boolean, msg: String) {
if (issuccess) {
- pos.getControlPara(PublicDef.CONTROL_HAS_REGISTER) ?: jumpActivity(InitActivity::class.java)
val record = pos.getConfigPara()
if (record != null && record.initOK) {
jumpActivity(LoadActivity::class.java)
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 4534f7e..9bf22b9 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
@@ -237,12 +237,12 @@
onlRecord = TransdtlOnlineRecord()
var seqno = pos.getTransdtlOnlineMaxSeqno()
if (seqno == 0) {
- seqno = pos.getControlPara(PublicDef.CONTROL_TRANSDTLONL_SEQNO)?.paraval?.toInt() ?: 0
+ seqno = pos.getDynamicPara()?.onlineseqno ?: 0
}
onlRecord.devphyid = pos.getConfigPara()!!.devphyid
onlRecord.transdate = cardBean.datetime!!.substring(0, 8)
onlRecord.transtime = cardBean.datetime!!.substring(8)
- onlRecord.devseqno = seqno
+ onlRecord.devseqno = seqno + 1
onlRecord.cardno = cardBean.cardNo
onlRecord.cardphyid = cardBean.cardphyid
onlRecord.payamt = cardBean.amount
@@ -282,7 +282,7 @@
val ctlRecord = pos.getControlPara(PublicDef.CONTROL_OFFLINE_DAY_DISABLE)
if (ctlRecord == null || ctlRecord.paraval != "1") {
val offdate = DateUtil.getDayDateNoFormatBefore(sysRecord.maxOfflineDays)
- val validdate = pos.getDynamicPara()!!.lastauthtime?.substring(0, 8) ?: "00000000"
+ val validdate = pos.getDynamicPara()!!.jwtExpire?.substring(0, 8) ?: "00000000"
if (offdate > validdate) {
throw CardPayFailError("设备已脱机${sysRecord.maxOfflineDays}天")
}
@@ -302,12 +302,12 @@
offRecord = TransdtlOfflineRecord()
var seqno = pos.getTransdtlOfflineMaxSeqno()
if (seqno == 0) {
- seqno = pos.getControlPara(PublicDef.CONTROL_TRANSDTLOFF_SEQNO)?.paraval?.toInt() ?: 0
+ seqno = pos.getDynamicPara()?.onlineseqno ?: 0
}
offRecord.devphyid = pos.getConfigPara()!!.devphyid
offRecord.transdate = cardBean.datetime!!.substring(0, 8)
offRecord.transtime = cardBean.datetime!!.substring(8)
- offRecord.devseqno = seqno
+ offRecord.devseqno = seqno + 1
offRecord.cardno = cardBean.cardNo
offRecord.cardphyid = cardBean.cardphyid
offRecord.payamt = cardBean.amount
diff --git a/app/src/main/java/com/supwisdom/activities/init/InitActivity.kt b/app/src/main/java/com/supwisdom/activities/init/InitActivity.kt
index eee106f..452db49 100644
--- a/app/src/main/java/com/supwisdom/activities/init/InitActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/init/InitActivity.kt
@@ -66,7 +66,7 @@
record.devphyid = "12345678"
record.epayIP = "127.0.0.1"
record.epayPort = 8080
- record.epayUri = "epayapi"
+ record.epayUri = "restaurant"
}
record.initOK = false
pos.replaceConfigPara(record)
diff --git a/app/src/main/java/com/supwisdom/activities/init/InitPresenter.kt b/app/src/main/java/com/supwisdom/activities/init/InitPresenter.kt
index 86dee25..13d527e 100644
--- a/app/src/main/java/com/supwisdom/activities/init/InitPresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/init/InitPresenter.kt
@@ -25,13 +25,18 @@
iInitView.showSWToastInfo("终端机编号不能为空!", PublicDef.TOAST_SHOW_DOUBT)
return
}
- record.devphyid = devphyid.replace(" ", "")
+ record.devphyid = devphyid
if (TextUtils.isEmpty(serverip)) {
iInitView.showSWToastInfo("服务器IP不能为空!", PublicDef.TOAST_SHOW_DOUBT)
return
}
- record.epayIP = serverip.replace(" ", "")
+ record.epayIP = if (serverip.startsWith("http")) {
+ serverip
+ } else {
+ "http://$serverip"
+ }
+
try {
val tmpPort = Integer.valueOf(port)
if (tmpPort > 65535) {
diff --git a/app/src/main/java/com/supwisdom/activities/load/LoadPresenter.kt b/app/src/main/java/com/supwisdom/activities/load/LoadPresenter.kt
index b067352..03fc13b 100644
--- a/app/src/main/java/com/supwisdom/activities/load/LoadPresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/load/LoadPresenter.kt
@@ -52,7 +52,6 @@
ThreadPool.getShortPool().execute(Runnable {
sendMessage(LOAD_PROGRESS, "正在系统签到...")
- val apiInterface = EpayApiImpl()
val bean = AuthEpay().login()
if (bean.retcode != PublicDef.SUCCESS) {
sendMessage(LOAD_DONE, bean.retmsg!!)
@@ -62,27 +61,25 @@
return@Runnable
}
} else {
- cfgRecord = pos.getConfigPara()
- cfgRecord!!.deviceid = bean.deviceid
- cfgRecord!!.merchaccno = bean.merchaccno
- cfgRecord!!.shopname = bean.shopname
+ val dyRecord = pos.getDynamicPara()
+ dyRecord!!.deviceid = bean.deviceid
+ dyRecord.merchaccno = bean.merchaccno
+ dyRecord.shopname = bean.shopname
+ dyRecord.onlineseqno = bean.onlineseqno
+ dyRecord.offlineseqno = bean.offlineseqno
+ dyRecord.paragroupid = bean.paragroupid
pos.replaceConfigPara(cfgRecord!!)
- // 保存流水号
- if (!hasInit) {
- pos.replaceControlPara(PublicDef.CONTROL_TRANSDTLONL_SEQNO, bean.onlineseqno.toString())
- pos.replaceControlPara(PublicDef.CONTROL_TRANSDTLOFF_SEQNO, bean.offlineseqno.toString())
- }
-
SPApplication.getInstance().setEpayLinking(true)
sendMessage(LOAD_DONE, "系统签到成功")
}
// 设置通讯参数
// YktSession.getInstance().setSessionKey(pos.getDynamicPara().getSessionKey())
+ val apiInterface = EpayApiImpl()
try {
sendMessage(LOAD_PROGRESS, "加载系统参数...")
- apiInterface.downloadSyspara( bean.paragroupid,bean.paraverno)
+ apiInterface.downloadSyspara(bean.paragroupid, bean.paraverno)
sendMessage(LOAD_DONE, "加载系统参数成功")
} catch (ex: Exception) {
sendMessage(LOAD_DONE, "加载系统参数失败:${ex.message}")
@@ -107,8 +104,6 @@
cfgRecord = pos.getConfigPara()
cfgRecord!!.initOK = true
pos.replaceConfigPara(cfgRecord!!)
- pos.replaceControlPara(PublicDef.CONTROL_HAS_REGISTER, "1")
-
sendMessage(LOAD_SUCCESS, "加载成功")
})
}
diff --git a/app/src/main/java/com/supwisdom/bean/AuthJwtRetBean.kt b/app/src/main/java/com/supwisdom/bean/AuthJwtRetBean.kt
new file mode 100644
index 0000000..0514140
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/bean/AuthJwtRetBean.kt
@@ -0,0 +1,10 @@
+package com.supwisdom.bean
+
+/**
+ ** create by zzq on 2019/7/29
+ ** @desc
+ **/
+class AuthJwtRetBean : BaseResp() {
+ var jwt: String? = null
+ var expiredAt: String? = null //过期时间 UTC格式
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/bean/AuthTokenRetBean.kt b/app/src/main/java/com/supwisdom/bean/AuthTokenRetBean.kt
new file mode 100644
index 0000000..440ad89
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/bean/AuthTokenRetBean.kt
@@ -0,0 +1,10 @@
+package com.supwisdom.bean
+
+/**
+ ** create by zzq on 2019/7/29
+ ** @desc
+ **/
+class AuthTokenRetBean : BaseResp() {
+ var token: String? = null
+ var timestamp: String? = null
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/entity/ConfigParaRecord.kt b/app/src/main/java/com/supwisdom/entity/ConfigParaRecord.kt
index 3c344a7..4b536ac 100644
--- a/app/src/main/java/com/supwisdom/entity/ConfigParaRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/ConfigParaRecord.kt
@@ -6,9 +6,6 @@
**/
class ConfigParaRecord {
var mode: Int = 0//
- var deviceid: Int = 0 // 设备ID
- var merchaccno: Int = 0//商户号
- var shopname: String? = null//商户名
var devphyid: String? = null
var epayIP: String? = null
var epayPort: Int = 0
diff --git a/app/src/main/java/com/supwisdom/entity/DynamicParaRecord.kt b/app/src/main/java/com/supwisdom/entity/DynamicParaRecord.kt
index d396060..bee1dbe 100644
--- a/app/src/main/java/com/supwisdom/entity/DynamicParaRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/DynamicParaRecord.kt
@@ -5,10 +5,17 @@
** @desc 后台动态参数
**/
class DynamicParaRecord {
+ var appid: String? = null
+ var appsecret: String? = null
+ var deviceid: Int = 0 // 设备ID
+ var merchaccno: Int = 0 //商户号
+ var shopname: String? = null //商户名
var paraverno: Int = 0//参数版本
var paragroupid: Int = 0//参数组id
+ var onlineseqno: Int = 0 //后台最大联机流水号
+ var offlineseqno: Int = 0 //后台最大离线流水号
var cardverno: String? = null // 黑名单版本号 12byte
var jwt: String? = null
var token: String? = null
- var lastauthtime: String? = null //最后一次认证时间 yyyyMMddhhmmss
+ var jwtExpire: String? = null //jwt有效期 yyyyMMddhhmmss
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt b/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
index f55b2bb..7ce9650 100644
--- a/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
+++ b/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
@@ -35,6 +35,8 @@
private val JSON = MediaType.parse("application/json; charset=utf-8")
private val FORM_ENCODE = MediaType.parse("application/x-www-form-urlencoded;charset=utf-8")
private var commTime = 2
+ private var clientId = "clientId"
+ private var jwt = "jwt"
init {
client = OkHttpClient()
@@ -73,6 +75,14 @@
}
}
+ fun setClientId(clientId: String) {
+ this.clientId = clientId
+ }
+
+ fun setJwt(jwt: String) {
+ this.jwt = jwt
+ }
+
private class TrustAllCerts : X509TrustManager {
@Throws(CertificateException::class)
override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String) {
@@ -110,6 +120,8 @@
val request = Request.Builder()
.url(geturl(url, params))
.addHeader("Accept", "application/json; q=0.5")
+ .addHeader("X-TENANT-ID", clientId)
+ .addHeader("Authorization", "Bearer $jwt")
.addHeader("Connection", "close")
.build()
return getTransResp(request)
@@ -119,6 +131,8 @@
val request = Request.Builder()
.url(geturl(url, params))
.addHeader("Accept", "application/json; q=0.5")
+ .addHeader("X-TENANT-ID", clientId)
+ .addHeader("Authorization", "Bearer $jwt")
.addHeader("Connection", "close")
.build()
client!!.newCall(request).enqueue(object : Callback {
@@ -151,6 +165,8 @@
val request = Request.Builder()
.url(url)
.addHeader("Accept", "application/json; q=0.5")
+ .addHeader("X-TENANT-ID", clientId)
+ .addHeader("Authorization", "Bearer $jwt")
.addHeader("Connection", "close")
.post(builder.build())
.build()
@@ -165,6 +181,8 @@
val request = Request.Builder()
.url(url)
.addHeader("Accept", "application/json; q=0.5")
+ .addHeader("X-TENANT-ID", clientId)
+ .addHeader("Authorization", "Bearer $jwt")
.addHeader("Connection", "close")
.post(builder.build())
.build()
@@ -176,6 +194,8 @@
val request = Request.Builder()
.url(url)
.addHeader("Accept", "application/json; q=0.5")
+ .addHeader("X-TENANT-ID", clientId)
+ .addHeader("Authorization", "Bearer $jwt")
.addHeader("Connection", "close")
.post(body)
.build()
@@ -187,6 +207,8 @@
val request = Request.Builder()
.url(url)
.addHeader("Accept", "application/json; q=0.5")
+ .addHeader("X-TENANT-ID", clientId)
+ .addHeader("Authorization", "Bearer $jwt")
.addHeader("Connection", "close")
.post(body)
.build()
diff --git a/app/src/main/java/com/supwisdom/service/AuthEpay.kt b/app/src/main/java/com/supwisdom/service/AuthEpay.kt
index ebe4961..319c217 100644
--- a/app/src/main/java/com/supwisdom/service/AuthEpay.kt
+++ b/app/src/main/java/com/supwisdom/service/AuthEpay.kt
@@ -1,10 +1,15 @@
package com.supwisdom.service
+import android.text.TextUtils
import com.supwisdom.activities.SPApplication
import com.supwisdom.activities.YktSession
+import com.supwisdom.bean.AuthJwtRetBean
import com.supwisdom.bean.AuthRetBean
+import com.supwisdom.bean.AuthTokenRetBean
import com.supwisdom.exception.AuthEpayError
+import com.supwisdom.okhttp.NetworkHandler
import com.supwisdom.okhttp.WebParams
+import com.supwisdom.utils.CryptUtil
import com.supwisdom.utils.DateUtil
import com.supwisdom.utils.GsonUtil
import com.supwisdom.utils.PublicDef
@@ -16,29 +21,99 @@
class AuthEpay {
private val pos = SPApplication.getInstance().getPos()
+ @Throws(AuthEpayError::class)
fun login(): AuthRetBean {
- return AuthRetBean(PublicDef.ERROR, "未实行")
+ val token = getAccessToken()
+ getAccessJwt(token)
+ return secureAuth()
}
- private fun getAccessToken() {
-
+ @Throws(AuthEpayError::class)
+ fun refresh() {
+ val record = pos.getConfigPara()
+ val url = StringBuilder()
+ url.append(record!!.epayIP).append(":").append(record.epayPort)
+ .append("/").append(record.epayUri)
+ .append("/api/auth/refresh/").append(record.devphyid)
+ val resp = NetworkHandler.getInstance().get(url.toString(), null)
+ ?: throw AuthEpayError("jwt刷新请求超时")
+ val retBean = GsonUtil.GsonToBean(resp.retjson!!, AuthJwtRetBean::class.java)
+ dealSession(retBean)
}
- private fun secureAuth() {
+ private fun getAccessToken(): String {
+ val record = pos.getConfigPara()
+ val url = StringBuilder()
+ url.append(record!!.epayIP).append(":").append(record.epayPort)
+ .append("/").append(record.epayUri)
+ .append("/api/auth/gettoken/").append(record.devphyid)
+
+ NetworkHandler.getInstance().setClientId(record.devphyid!!)
+
+ val resp = NetworkHandler.getInstance().get(url.toString(), null)
+ ?: throw AuthEpayError("token请求超时")
+ val retBean = GsonUtil.GsonToBean(resp.retjson!!, AuthTokenRetBean::class.java)
+ if (retBean.retcode != PublicDef.SUCCESS) {
+ throw AuthEpayError(retBean.retmsg!!)
+ }
+ if (TextUtils.isEmpty(retBean.token)) {
+ throw AuthEpayError("token不能为空")
+ }
+ return retBean.token!!
+ }
+
+ private fun getAccessJwt(token: String) {
+ val record = pos.getConfigPara()
+ val url = StringBuilder()
+ url.append(record!!.epayIP).append(":").append(record.epayPort)
+ .append("/").append(record.epayUri)
+ .append("/api/auth/authentication/").append(record.devphyid)
+
+ val secret = CryptUtil.HMACSHA256(token, pos.getDynamicPara()!!.appsecret!!)
+ val params = WebParams()
+ params.setParameter("appid", pos.getDynamicPara()!!.appid)
+ .setParameter("app_secret", secret)
+
+ val resp = NetworkHandler.getInstance().get(url.toString(), params)
+ ?: throw AuthEpayError("jwt请求超时")
+ val retBean = GsonUtil.GsonToBean(resp.retjson!!, AuthJwtRetBean::class.java)
+ dealSession(retBean)
+ }
+
+ private fun secureAuth(): AuthRetBean {
val dyRecord = pos.getDynamicPara()
+ val cardverno = dyRecord!!.cardverno ?: "0"
val params = WebParams()
params.setParameter("devphyid", pos.getConfigPara()!!.devphyid)
.setParameter("termdate", DateUtil.getNowDateNoFormat())
.setParameter("termtime", DateUtil.getNowTimeNoFormat())
- .setParameter("paragroupid", dyRecord!!.paragroupid)
- .setParameter("cardverno", dyRecord.cardverno)
+ .setParameter("paragroupid", dyRecord.paragroupid)
+ .setParameter("cardverno", cardverno)
- val resp = YktSession.getInstance().sendYktRequestPost("/api/pos/heartbeat", "", params)
+ val resp = YktSession.getInstance().sendYktRequestPost("/api/pos/login", "", params)
?: throw AuthEpayError("请求超时")
val retBean = GsonUtil.GsonToBean(resp.retjson!!, AuthRetBean::class.java)
if (retBean.retcode != PublicDef.SUCCESS) {
throw AuthEpayError(retBean.retmsg!!)
}
+ return retBean
+ }
+ private fun dealSession(bean: AuthJwtRetBean) {
+ if (bean.retcode != PublicDef.SUCCESS) {
+ throw AuthEpayError(bean.retmsg!!)
+ }
+ if (TextUtils.isEmpty(bean.jwt)) {
+ throw AuthEpayError("jwt不能为空")
+ }
+ NetworkHandler.getInstance().setJwt(bean.jwt!!)
+
+ val dyRecord = pos.getDynamicPara()
+ dyRecord!!.jwt = bean.jwt
+ //TODO
+ dyRecord.jwtExpire = DateUtil.utcToLocal(bean.expiredAt!!)
+ if (!pos.replaceDynamicPara(dyRecord)) {
+ throw AuthEpayError("保存参数失败")
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt b/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
index 45862db..473225e 100644
--- a/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
+++ b/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
@@ -54,6 +54,10 @@
throw SysParaError(ex.message ?: "null")
}
}
+ /**
+ * 时钟校准
+ */
+ NtpClient().startCalibrateTime(retBean.systime!!)
}
@Throws(HeartBeatError::class)
diff --git a/app/src/main/java/com/supwisdom/utils/CryptUtil.kt b/app/src/main/java/com/supwisdom/utils/CryptUtil.kt
index d1677e6..b3d7f97 100644
--- a/app/src/main/java/com/supwisdom/utils/CryptUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/CryptUtil.kt
@@ -49,6 +49,22 @@
return null
}
+ fun HMACSHA256(data: String, key: String): String? {
+ try {
+ val algorithm = "HmacSHA256"
+ val mac = Mac.getInstance(algorithm)
+ val spec = SecretKeySpec(key.toByteArray(), algorithm)
+ mac.init(spec)
+ val byteHMAC = mac.doFinal(data.toByteArray())
+ return byteHMAC.encodeHex()
+ } catch (e: InvalidKeyException) {
+ e.printStackTrace()
+ } catch (ignore: NoSuchAlgorithmException) {
+ ignore.printStackTrace()
+ }
+ return null
+ }
+
private fun algorithm2(text: String?, algorithm: String, isUpperCase: Boolean): String? {
if (text != null && text.isNotEmpty()) {
try {
diff --git a/app/src/main/java/com/supwisdom/utils/DateUtil.kt b/app/src/main/java/com/supwisdom/utils/DateUtil.kt
index f125399..a134bac 100644
--- a/app/src/main/java/com/supwisdom/utils/DateUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/DateUtil.kt
@@ -1,6 +1,7 @@
package com.supwisdom.utils
import java.text.ParseException
+import java.text.SimpleDateFormat
import java.util.*
/**
@@ -26,6 +27,8 @@
private val FORMAT_yyyy_MM_dd = org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyy-MM-dd")
private val FORMAT_HH_mm_ss = org.apache.commons.lang3.time.FastDateFormat.getInstance("HH:mm:ss")
private val FORMAT_HH_mm = org.apache.commons.lang3.time.FastDateFormat.getInstance("HH:mm")
+ private val FORMAT_UTC_yyyyMMddHHmmss =
+ org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss")
/**
* @return yyyy-MM-dd HH:mm:ss
@@ -128,21 +131,37 @@
return ""
}
+ fun utcToLocal(utctime: String): String {
+ val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+ sdf.timeZone = TimeZone.getTimeZone("TUC")
+ try {
+ val utcDate = sdf.parse(utctime)
+ sdf.timeZone = TimeZone.getDefault()
+ val localTime = sdf.format(utcDate.time)
+ val localDate = sdf.parse(localTime)
+ System.out.println("test")
+ } catch (ex: ParseException) {
+ ex.printStackTrace()
+ }
+ return ""
+ }
+
+
/**
* @param datetime yyyyMMddHHmmss
* @return yy-MM-dd HH:mm:ss
*/
- fun getNowDatetimeFromNoFormat2(datetime: String): String {
- try {
- return datetime.substring(2, 4) + "-" +
+ fun getNowDatetimeFromNoFormat2(datetime: String): String? {
+ return try {
+ datetime.substring(2, 4) + "-" +
datetime.substring(4, 6) + "-" +
datetime.substring(6, 8) + " " +
datetime.substring(8, 10) + ":" +
datetime.substring(10, 12) + ":" +
datetime.substring(12)
} catch (ex: Exception) {
+ null
}
- return ""
}
/**
@@ -174,10 +193,10 @@
* @return HH:mm:ss
*/
fun getNowTimeWithArg(date: Date): String? {
- try {
- return FORMAT_HH_mm_ss.format(date)
+ return try {
+ FORMAT_HH_mm_ss.format(date)
} catch (e: Exception) {
- return null
+ null
}
}
@@ -185,28 +204,27 @@
* @param time HHmm
* @return HH:mm
*/
- fun formatTime(time: String): String {
- try {
+ fun formatTime(time: String): String? {
+ return try {
val sb = StringBuilder()
sb.append(time.substring(0, 2)).append(":")
.append(time.substring(2, 4))
- return sb.toString()
+ sb.toString()
} catch (e: Exception) {
- e.printStackTrace()
+ null
}
- return ""
}
/**
* @return MMdd
*/
fun getDateMMdd(): String? {
- try {
- return FORMAT_MMdd.format(Date())
+ return try {
+ FORMAT_MMdd.format(Date())
} catch (e: Exception) {
e.printStackTrace()
+ null
}
- return null
}
/**
diff --git a/app/src/main/java/com/supwisdom/utils/PublicDef.kt b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
index d5fac32..ca1da56 100644
--- a/app/src/main/java/com/supwisdom/utils/PublicDef.kt
+++ b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
@@ -71,10 +71,7 @@
/**
* 本地全局控制参数
*/
- const val CONTROL_TRANSDTLONL_SEQNO = "onlseqno"
- const val CONTROL_TRANSDTLOFF_SEQNO = "offseqno"
const val CONTROL_FIXAMT = "fixamt"
- const val CONTROL_HAS_REGISTER = "hasregister"
const val CONTROL_OFFLINE_DAY_DISABLE = "offdaydisable"
const val CONTROL_DEBUG_ENABLE = "debugenable"
/**