添加晟元扫码
diff --git a/app/build.gradle b/app/build.gradle
index d919594..3debf66 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,80 +1,93 @@
-plugins {
- id 'com.gladed.androidgitversion' version '0.4.9'
-}
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
-
-android {
- compileSdkVersion 28
- defaultConfig {
- applicationId "com.supwisdom.posa711"
- minSdkVersion 22
- targetSdkVersion 28
- versionName androidGitVersion.name()
- versionCode androidGitVersion.code()
- ndk {
- abiFilters "arm64-v8a"
- }
- multiDexEnabled true
- }
- signingConfigs {
- release {
- storeFile file("$rootDir/keys-app.jks")
- storePassword "123456"
- keyAlias "sup"
- keyPassword "123456"
- v1SigningEnabled true
- v2SigningEnabled true
- }
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- signingConfig signingConfigs.release
- }
- }
- compileOptions {
- sourceCompatibility 1.8
- targetCompatibility 1.8
- }
- packagingOptions {
- exclude 'META-INF/DEPENDENCIES'
- exclude 'META-INF/LICENSE'
- exclude 'META-INF/LICENSE.txt'
- exclude 'META-INF/license.txt'
- exclude 'META-INF/NOTICE'
- exclude 'META-INF/NOTICE.txt'
- exclude 'META-INF/notice.txt'
- exclude 'META-INF/ASL2.0'
- }
-}
-
-dependencies {
-// implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61'
- implementation group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: '1.3.61'
- implementation 'com.android.support:appcompat-v7:28.0.0'
- implementation 'com.android.support.constraint:constraint-layout:1.1.3'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
-
-// compile 'com.alibaba:fastjson:1.1.70.android'
- implementation 'com.google.code.gson:gson:2.8.6'
- implementation 'com.nineoldandroids:parent:2.4.0'
- implementation 'com.squareup.okhttp3:okhttp:4.2.2'
- implementation 'net.java.dev.jna:jna:5.5.0@aar'
- implementation 'com.koushikdutta.async:androidasync:2.2.1'
- implementation group: 'com.android.support', name: 'recyclerview-v7', version: '28.0.0'
- implementation 'org.apache.commons:commons-lang3:3.9'
- implementation 'com.android.support:multidex:1.0.3'
- implementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.61'
- implementation 'org.springframework.android:spring-android-core:1.0.1.RELEASE'
- implementation 'org.apache.httpcomponents:httpcore:4.4.13'
- implementation("com.beust:klaxon:0.30") {
- exclude group: 'org.jetbrains'
- }
- compile files('libs/zxinglibsl.jar')
-}
+plugins {
+ id 'com.gladed.androidgitversion' version '0.4.9'
+}
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions'
+
+android {
+ compileSdkVersion 28
+ defaultConfig {
+ applicationId "com.supwisdom.posa711"
+ minSdkVersion 22
+ targetSdkVersion 28
+ versionName androidGitVersion.name()
+ versionCode androidGitVersion.code()
+ ndk {
+ abiFilters "arm64-v8a"
+ }
+ multiDexEnabled true
+ }
+ signingConfigs {
+ release {
+ storeFile file("$rootDir/keys-app.jks")
+ storePassword "123456"
+ keyAlias "sup"
+ keyPassword "123456"
+ v1SigningEnabled true
+ v2SigningEnabled true
+ }
+ sign {
+ storeFile file("$rootDir/keys-sign.jks")
+ storePassword "123456"
+ keyAlias "sup"
+ keyPassword "android"
+ v1SigningEnabled true
+ v2SigningEnabled true
+ }
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ signingConfig signingConfigs.release
+ }
+ debug {
+ signingConfig signingConfigs.sign
+ }
+ }
+ compileOptions {
+ sourceCompatibility 1.8
+ targetCompatibility 1.8
+ }
+ packagingOptions {
+ exclude 'META-INF/DEPENDENCIES'
+ exclude 'META-INF/LICENSE'
+ exclude 'META-INF/LICENSE.txt'
+ exclude 'META-INF/license.txt'
+ exclude 'META-INF/NOTICE'
+ exclude 'META-INF/NOTICE.txt'
+ exclude 'META-INF/notice.txt'
+ exclude 'META-INF/ASL2.0'
+ }
+}
+
+dependencies {
+// implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61'
+ implementation group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: '1.3.61'
+ implementation 'com.android.support:appcompat-v7:28.0.0'
+ implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+
+// compile 'com.alibaba:fastjson:1.1.70.android'
+ implementation 'com.google.code.gson:gson:2.8.6'
+ implementation 'com.nineoldandroids:parent:2.4.0'
+ implementation 'com.squareup.okhttp3:okhttp:4.2.2'
+ implementation 'net.java.dev.jna:jna:5.5.0@aar'
+ implementation 'com.koushikdutta.async:androidasync:2.2.1'
+ implementation group: 'com.android.support', name: 'recyclerview-v7', version: '28.0.0'
+ implementation 'org.apache.commons:commons-lang3:3.9'
+ implementation 'com.android.support:multidex:1.0.3'
+ implementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.61'
+ implementation 'org.springframework.android:spring-android-core:1.0.1.RELEASE'
+ implementation 'org.apache.httpcomponents:httpcore:4.4.13'
+ implementation("com.beust:klaxon:0.30") {
+ exclude group: 'org.jetbrains'
+ }
+ implementation files('libs/zxinglibsl.jar')
+ implementation files('libs/codelib_3.0.2_release.jar')
+ implementation files('libs/bcprov-jdk16-145.jar')
+}
diff --git a/app/libs/bcprov-jdk16-145.jar b/app/libs/bcprov-jdk16-145.jar
new file mode 100644
index 0000000..38685d5
--- /dev/null
+++ b/app/libs/bcprov-jdk16-145.jar
Binary files differ
diff --git a/app/libs/codelib_3.0.2_release.jar b/app/libs/codelib_3.0.2_release.jar
new file mode 100644
index 0000000..0ae8e33
--- /dev/null
+++ b/app/libs/codelib_3.0.2_release.jar
Binary files differ
diff --git a/app/src/main/java/com/supwisdom/activities/SPApplication.kt b/app/src/main/java/com/supwisdom/activities/SPApplication.kt
index 781fd44..c8cf58f 100644
--- a/app/src/main/java/com/supwisdom/activities/SPApplication.kt
+++ b/app/src/main/java/com/supwisdom/activities/SPApplication.kt
@@ -1,69 +1,86 @@
-package com.supwisdom.activities
-
-import android.content.Context
-import android.content.Intent
-import android.support.multidex.MultiDex
-import android.support.multidex.MultiDexApplication
-import com.supwisdom.db.Pos
-import com.supwisdom.utils.CommonUtil
-import com.supwisdom.utils.PublicDef
-
-/**
- ** create by zzq on 2019/7/23
- ** @desc
- **/
-class SPApplication : MultiDexApplication() {
- private var mPos: Pos? = null
- @Volatile
- private var epayLinking: Boolean = false //链路状态 true 联机
-
- companion object {
- @Volatile
- private var mInstance: SPApplication? = null
-
- fun getInstance(): SPApplication {
- return mInstance!!
- }
- }
-
- fun getPos(): Pos {
- if (mPos == null) {
- synchronized(SPApplication::class.java) {
- if (mPos == null) {
- mPos = Pos(applicationContext)
- }
- }
- }
- return mPos!!
- }
-
- fun setEpayLinking(isOnline: Boolean) {
- epayLinking = isOnline
- }
-
- fun isOnline(): Boolean {
- return epayLinking
- }
-
- override fun onCreate() {
- super.onCreate()
- mInstance = this
- startService()
- CrashHandler.getInstance().init(applicationContext)
- }
-
- override fun attachBaseContext(base: Context) {
- super.attachBaseContext(base)
- MultiDex.install(this)
- }
-
- private fun startService() {
- if (!CommonUtil.isServiceWork(this, PublicDef.BG_SERVICE_NAME)) {
- startService(Intent(this, ServiceDemo::class.java))
- }
- }
-
- fun stopService() {
- stopService(Intent(this, ServiceDemo::class.java))
- }
+package com.supwisdom.activities
+
+import android.content.Context
+import android.content.Intent
+import android.support.multidex.MultiDex
+import android.support.multidex.MultiDexApplication
+import com.supwisdom.db.Pos
+import com.supwisdom.utils.CommonUtil
+import com.supwisdom.utils.DateUtil
+import com.supwisdom.utils.PublicDef
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+class SPApplication : MultiDexApplication() {
+ private var mPos: Pos? = null
+
+ @Volatile
+ private var epayLinking: Boolean = false //链路状态 true 联机
+ private var synoCodeActive: Boolean = false // true-激活
+
+ companion object {
+ @Volatile
+ private var mInstance: SPApplication? = null
+
+ fun getInstance(): SPApplication {
+ return mInstance!!
+ }
+ }
+
+ fun getPos(): Pos {
+ if (mPos == null) {
+ synchronized(SPApplication::class.java) {
+ if (mPos == null) {
+ mPos = Pos(applicationContext)
+ }
+ }
+ }
+ return mPos!!
+ }
+
+ fun isSynoCodeActive(): Boolean {
+ return synoCodeActive
+ }
+
+ fun setSynoCodeActive(active: Boolean) {
+ this.synoCodeActive = active
+ }
+
+ fun setEpayLinking(isOnline: Boolean) {
+ epayLinking = isOnline
+ }
+
+ fun isOnline(): Boolean {
+ return epayLinking
+ }
+
+ private val startime: String = DateUtil.getNowDateTime()
+
+ fun getStartime(): String {
+ return startime
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ mInstance = this
+ startService()
+ CrashHandler.getInstance().init(applicationContext)
+ }
+
+ override fun attachBaseContext(base: Context) {
+ super.attachBaseContext(base)
+ MultiDex.install(this)
+ }
+
+ private fun startService() {
+ if (!CommonUtil.isServiceWork(this, PublicDef.BG_SERVICE_NAME)) {
+ startService(Intent(this, ServiceDemo::class.java))
+ }
+ }
+
+ fun stopService() {
+ stopService(Intent(this, ServiceDemo::class.java))
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/checkShoppwd/CheckShoppwdActivity.kt b/app/src/main/java/com/supwisdom/activities/checkShoppwd/CheckShoppwdActivity.kt
index 5b12e29..746c06c 100644
--- a/app/src/main/java/com/supwisdom/activities/checkShoppwd/CheckShoppwdActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/checkShoppwd/CheckShoppwdActivity.kt
@@ -1,161 +1,160 @@
-package com.supwisdom.activities.checkShoppwd
-
-import android.content.Intent
-import android.os.Bundle
-import android.os.CountDownTimer
-import android.view.KeyEvent
-import android.widget.TextView
-import com.supwisdom.R
-import com.supwisdom.activities.BaseActivity
-import com.supwisdom.activities.SPApplication
-import com.supwisdom.activities.consume.ConsumeActivity
-import com.supwisdom.activities.consume.bean.CardUserInfoBean
-import com.supwisdom.auxscreen.AuxScreenController
-import com.supwisdom.utils.CommonUtil
-import com.supwisdom.utils.SoundUtil
-import java.util.*
-
-/**
- ** create by zzq on 2019/7/26
- ** @desc
- **/
-class CheckShoppwdActivity : BaseActivity() {
- private var tmpPwd: String = ""
- private lateinit var vTitle: TextView
- private lateinit var vContent: TextView
- private var keyActive = true
- private var transdtlType: String? = null
- private val pos = SPApplication.getInstance().getPos()
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- this.setContentView(R.layout.activity_check_mngpwd)
- initView()
- }
-
- private fun initView() {
- vTitle = findViewById<TextView>(R.id.title)
- vContent = findViewById<TextView>(R.id.content)
- }
-
- override fun dispatchKeyEvent(event: KeyEvent): Boolean {
- if (event.action == KeyEvent.ACTION_DOWN) {
- if (!keyActive) {
- return super.dispatchKeyEvent(event)
- }
- resetCounter(200)
-
- val keyCode = event.keyCode
- when (keyCode) {
- KeyEvent.KEYCODE_0,
- KeyEvent.KEYCODE_1,
- KeyEvent.KEYCODE_2,
- KeyEvent.KEYCODE_3,
- KeyEvent.KEYCODE_4,
- KeyEvent.KEYCODE_5,
- KeyEvent.KEYCODE_6,
- KeyEvent.KEYCODE_7,
- KeyEvent.KEYCODE_8,
- KeyEvent.KEYCODE_9 -> {
- tmpPwd += keyCode - KeyEvent.KEYCODE_0
- if (tmpPwd.length >= 6) {
- if (checkMngPwd(tmpPwd)) {
- doReverse()
- } else {
- AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("商户密码:", "密码错误"))
- }
- tmpPwd = ""
- } else {
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList("商户密码:", CommonUtil.getPasswordStar(tmpPwd.length)))
- }
- }
- KeyEvent.KEYCODE_DEL -> {
- //cancel
- val len = tmpPwd.length
- when {
- len == 1 -> {
- tmpPwd = ""
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList("商户密码:", CommonUtil.getPasswordStar(tmpPwd.length)))
- }
- len > 1 -> {
- tmpPwd = tmpPwd.substring(0, len - 1)
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList("商户密码:", CommonUtil.getPasswordStar(tmpPwd.length)))
- }
- else -> finish()
- }
- }
- }
- }
- return super.dispatchKeyEvent(event)
- }
-
- override fun onResume() {
- super.onResume()
- keyActive = true
- transdtlType = this.intent.getStringExtra("transdtlType")
- refresh()
- }
-
- override fun onNewIntent(intent: Intent) {
- super.onNewIntent(intent)
- this.intent.putExtra("transdtlType", intent.getStringExtra("transdtlType"))
- }
-
- private fun refresh() {
- tmpPwd = ""
- vTitle.text = "手工冲正"
- vContent.text = ""
- AuxScreenController.getInstance().refreshTitle("商户密码验证")
- AuxScreenController.getInstance().refreshBottom("取消键撤销输入")
- AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("商户密码:", " "))
- }
-
- private fun checkMngPwd(inputPwd: String): Boolean {
- return inputPwd == pos.getConfigPara()!!.shopPwd
- }
-
- private fun doReverse() {
-
- }
-
- private fun showRvsSuc(info: CardUserInfoBean) {
- val tmp = String.format("金额: %.02f元", info.payamt / 100.0f)
- vContent.text = "冲正成功\n$tmp"
- SoundUtil.playMusic(applicationContext, R.raw.reversal_suc)
- AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("冲正成功", tmp))
- jumpActivity(ConsumeActivity::class.java)
- }
-
- private fun showRvsFail(errmsg: String) {
- vContent.text = "冲正失败\n$errmsg"
- SoundUtil.playMusic(applicationContext, R.raw.reversal_fail)
- AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("冲正失败", errmsg))
- jumpActivity(ConsumeActivity::class.java)
- }
-
- private var counter: ContinuePressTimer? = null
-
- private fun resetCounter(timems: Long) {
- counter?.cancel()
- if (counter == null) {
- counter = ContinuePressTimer(timems, 100)
- }
- keyActive = false
- counter!!.start()
- }
-
- private inner class ContinuePressTimer internal constructor(millisInFuture: Long, countDownInterval: Long) :
- CountDownTimer(millisInFuture, countDownInterval) {
-
- override fun onTick(millisUntilFinished: Long) {
-
- }
-
- override fun onFinish() {
- keyActive = true
- }
- }
+package com.supwisdom.activities.checkShoppwd
+
+import android.content.Intent
+import android.os.Bundle
+import android.os.CountDownTimer
+import android.view.KeyEvent
+import android.widget.TextView
+import com.supwisdom.R
+import com.supwisdom.activities.BaseActivity
+import com.supwisdom.activities.SPApplication
+import com.supwisdom.activities.consume.ConsumeActivity
+import com.supwisdom.activities.consume.bean.CardUserInfoBean
+import com.supwisdom.auxscreen.AuxScreenController
+import com.supwisdom.utils.CommonUtil
+import com.supwisdom.utils.SoundUtil
+import java.util.*
+
+/**
+ ** create by zzq on 2019/7/26
+ ** @desc
+ **/
+class CheckShoppwdActivity : BaseActivity() {
+ private var tmpPwd: String = ""
+ private lateinit var vTitle: TextView
+ private lateinit var vContent: TextView
+ private var keyActive = true
+ private var transdtlType: String? = null
+ private val pos = SPApplication.getInstance().getPos()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ this.setContentView(R.layout.activity_check_mngpwd)
+ initView()
+ }
+
+ private fun initView() {
+ vTitle = findViewById<TextView>(R.id.title)
+ vContent = findViewById<TextView>(R.id.content)
+ }
+
+ override fun dispatchKeyEvent(event: KeyEvent): Boolean {
+ if (event.action == KeyEvent.ACTION_DOWN) {
+ if (!keyActive) {
+ return super.dispatchKeyEvent(event)
+ }
+ resetCounter(200)
+
+ when (event.keyCode) {
+ KeyEvent.KEYCODE_0,
+ KeyEvent.KEYCODE_1,
+ KeyEvent.KEYCODE_2,
+ KeyEvent.KEYCODE_3,
+ KeyEvent.KEYCODE_4,
+ KeyEvent.KEYCODE_5,
+ KeyEvent.KEYCODE_6,
+ KeyEvent.KEYCODE_7,
+ KeyEvent.KEYCODE_8,
+ KeyEvent.KEYCODE_9 -> {
+ tmpPwd += event.keyCode - KeyEvent.KEYCODE_0
+ if (tmpPwd.length >= 6) {
+ if (checkMngPwd(tmpPwd)) {
+ doReverse()
+ } else {
+ AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("商户密码:", "密码错误"))
+ }
+ tmpPwd = ""
+ } else {
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList("商户密码:", CommonUtil.getPasswordStar(tmpPwd.length)))
+ }
+ }
+ KeyEvent.KEYCODE_DEL -> {
+ //cancel
+ val len = tmpPwd.length
+ when {
+ len == 1 -> {
+ tmpPwd = ""
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList("商户密码:", CommonUtil.getPasswordStar(tmpPwd.length)))
+ }
+ len > 1 -> {
+ tmpPwd = tmpPwd.substring(0, len - 1)
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList("商户密码:", CommonUtil.getPasswordStar(tmpPwd.length)))
+ }
+ else -> finish()
+ }
+ }
+ }
+ }
+ return super.dispatchKeyEvent(event)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ keyActive = true
+ transdtlType = this.intent.getStringExtra("transdtlType")
+ refresh()
+ }
+
+ override fun onNewIntent(intent: Intent) {
+ super.onNewIntent(intent)
+ this.intent.putExtra("transdtlType", intent.getStringExtra("transdtlType"))
+ }
+
+ private fun refresh() {
+ tmpPwd = ""
+ vTitle.text = "手工冲正"
+ vContent.text = ""
+ AuxScreenController.getInstance().refreshTitle("商户密码验证")
+ AuxScreenController.getInstance().refreshBottom("取消键撤销输入")
+ AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("商户密码:", " "))
+ }
+
+ private fun checkMngPwd(inputPwd: String): Boolean {
+ return inputPwd == pos.getConfigPara()!!.shopPwd
+ }
+
+ private fun doReverse() {
+
+ }
+
+ private fun showRvsSuc(info: CardUserInfoBean) {
+ val tmp = String.format("金额: %.02f元", info.payamt / 100.0f)
+ vContent.text = "冲正成功\n$tmp"
+ SoundUtil.playMusic(applicationContext, R.raw.reversal_suc)
+ AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("冲正成功", tmp))
+ jumpActivity(ConsumeActivity::class.java)
+ }
+
+ private fun showRvsFail(errmsg: String) {
+ vContent.text = "冲正失败\n$errmsg"
+ SoundUtil.playMusic(applicationContext, R.raw.reversal_fail)
+ AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("冲正失败", errmsg))
+ jumpActivity(ConsumeActivity::class.java)
+ }
+
+ private var counter: ContinuePressTimer? = null
+
+ private fun resetCounter(timems: Long) {
+ counter?.cancel()
+ if (counter == null) {
+ counter = ContinuePressTimer(timems, 100)
+ }
+ keyActive = false
+ counter!!.start()
+ }
+
+ private inner class ContinuePressTimer internal constructor(millisInFuture: Long, countDownInterval: Long) :
+ CountDownTimer(millisInFuture, countDownInterval) {
+
+ override fun onTick(millisUntilFinished: Long) {
+
+ }
+
+ override fun onFinish() {
+ keyActive = true
+ }
+ }
}
\ No newline at end of file
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 823c8ca..95f6739 100644
--- a/app/src/main/java/com/supwisdom/activities/load/LoadPresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/load/LoadPresenter.kt
@@ -1,138 +1,152 @@
-package com.supwisdom.activities.load
-
-import android.os.Handler
-import android.os.Looper
-import android.os.Message
-import com.supwisdom.activities.SPApplication
-import com.supwisdom.activities.YktSession
-import com.supwisdom.bean.AuthRetBean
-import com.supwisdom.exception.AuthEpayError
-import com.supwisdom.service.AuthEpay
-import com.supwisdom.service.EpayApiImpl
-import com.supwisdom.utils.CommonUtil
-import com.supwisdom.utils.PublicDef
-import com.supwisdom.utils.ThreadPool
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class LoadPresenter constructor(iLoadView: ILoadView) {
- private val iLoadView = iLoadView
- private val pos = SPApplication.getInstance().getPos()
- private lateinit var handler: Handler
-
- init {
- createHandler()
- }
-
- private val LOAD_SUCCESS = 1
- private val JUMP_TO_UNREGISTER = 2
- private val LOAD_PROGRESS = 3
- private val LOAD_DONE = 4
-
- private var hasInit: Boolean = false
- @Volatile
- private var loading: Boolean = false
-
- fun isLoading(): Boolean {
- return loading
- }
-
- fun start() {
- loading = true
- var cfgRecord = pos.getConfigPara()
- hasInit = cfgRecord?.initOK ?: false
-
- YktSession.getInstance().setWebAPISession(
- cfgRecord!!.epayIP!!,
- cfgRecord.epayPort,
- cfgRecord.epayUri!!,
- cfgRecord.tenantId!!,
- CommonUtil.getCommunicateTime()
- )
-
- ThreadPool.getShortPool().execute(Runnable {
- sendMessage(LOAD_PROGRESS, "正在系统签到...")
- val bean = try {
- AuthEpay().login()
- } catch (ex: AuthEpayError) {
- AuthRetBean(PublicDef.ERROR, ex.message ?: "null")
- }
- if (bean.retcode != PublicDef.SUCCESS) {
- sendMessage(LOAD_DONE, bean.retmsg!!)
- loading = false
- if (!hasInit) {
- sendMessage(JUMP_TO_UNREGISTER, "签到失败:${bean.retmsg}")
- return@Runnable
- }
- } else {
- 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.replaceDynamicPara(dyRecord)
-
- SPApplication.getInstance().setEpayLinking(true)
- sendMessage(LOAD_DONE, "系统签到成功")
- }
-
- // 设置通讯参数
- val apiInterface = EpayApiImpl()
- try {
- sendMessage(LOAD_PROGRESS, "加载系统参数...")
- apiInterface.downloadSyspara(bean.paragroupid, bean.paraverno)
- sendMessage(LOAD_DONE, "加载系统参数成功")
- } catch (ex: Exception) {
- sendMessage(LOAD_DONE, "加载系统参数失败:${ex.message}")
- if (!hasInit) {
- loading = false
- return@Runnable
- }
- }
-
- try {
- sendMessage(LOAD_PROGRESS, "加载白名单...")
- apiInterface.downloadWhitelist(bean.whitelistid, bean.cardverno!!)
- sendMessage(LOAD_DONE, "加载白名单成功")
- } catch (ex: Exception) {
- sendMessage(LOAD_DONE, "加载白名单失败:${ex.message}")
- if (!hasInit) {
- loading = false
- return@Runnable
- }
- }
-
- cfgRecord = pos.getConfigPara()
- cfgRecord!!.initOK = true
- pos.replaceConfigPara(cfgRecord!!)
- sendMessage(LOAD_SUCCESS, "加载成功")
- })
- }
-
- private fun createHandler() {
- handler = object : Handler(Looper.getMainLooper()) {
- override fun handleMessage(msg: Message) {
- when (msg.what) {
- LOAD_DONE -> iLoadView.showProgress(msg.obj as String, true)
- LOAD_PROGRESS -> iLoadView.showProgress(msg.obj as String, false)
- JUMP_TO_UNREGISTER -> iLoadView.jumpToUnregister(msg.obj as String)
- LOAD_SUCCESS -> {
- CommonUtil.doSleep(3000)
- iLoadView.showFinish()
- }
- }
- }
- }
- }
-
- private fun sendMessage(code: Int, info: String) {
- val msg = Message()
- msg.what = code
- msg.obj = info
- handler.sendMessage(msg)
- }
+package com.supwisdom.activities.load
+
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import com.supwisdom.activities.SPApplication
+import com.supwisdom.activities.YktSession
+import com.supwisdom.bean.AuthRetBean
+import com.supwisdom.exception.AuthEpayError
+import com.supwisdom.service.AuthEpay
+import com.supwisdom.service.EpayApiImpl
+import com.supwisdom.service.SynoCodeService
+import com.supwisdom.utils.CommonUtil
+import com.supwisdom.utils.PublicDef
+import com.supwisdom.utils.ThreadPool
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class LoadPresenter constructor(iLoadView: ILoadView) {
+ private val iLoadView = iLoadView
+ private val pos = SPApplication.getInstance().getPos()
+ private lateinit var handler: Handler
+
+ init {
+ createHandler()
+ }
+
+ private val LOAD_SUCCESS = 1
+ private val JUMP_TO_UNREGISTER = 2
+ private val LOAD_PROGRESS = 3
+ private val LOAD_DONE = 4
+
+ private var hasInit: Boolean = false
+
+ @Volatile
+ private var loading: Boolean = false
+
+ fun isLoading(): Boolean {
+ return loading
+ }
+
+ fun start() {
+ loading = true
+ var cfgRecord = pos.getConfigPara()
+ hasInit = cfgRecord?.initOK ?: false
+
+ YktSession.getInstance().setWebAPISession(
+ cfgRecord!!.epayIP!!,
+ cfgRecord.epayPort,
+ cfgRecord.epayUri!!,
+ cfgRecord.tenantId!!,
+ CommonUtil.getCommunicateTime()
+ )
+
+ ThreadPool.getShortPool().execute(Runnable {
+ sendMessage(LOAD_PROGRESS, "正在系统签到...")
+ val bean = try {
+ AuthEpay().login()
+ } catch (ex: AuthEpayError) {
+ AuthRetBean(PublicDef.ERROR, ex.message ?: "null")
+ }
+ if (bean.retcode != PublicDef.SUCCESS) {
+ sendMessage(LOAD_DONE, bean.retmsg!!)
+ loading = false
+ if (!hasInit) {
+ sendMessage(JUMP_TO_UNREGISTER, "签到失败:${bean.retmsg}")
+ return@Runnable
+ }
+ } else {
+ 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.replaceDynamicPara(dyRecord)
+
+ SPApplication.getInstance().setEpayLinking(true)
+ sendMessage(LOAD_DONE, "系统签到成功")
+ }
+
+ // 设置通讯参数
+ val apiInterface = EpayApiImpl()
+ try {
+ sendMessage(LOAD_PROGRESS, "加载系统参数...")
+ apiInterface.downloadSyspara(bean.paragroupid, bean.paraverno)
+ sendMessage(LOAD_DONE, "加载系统参数成功")
+ } catch (ex: Exception) {
+ sendMessage(LOAD_DONE, "加载系统参数失败:${ex.message}")
+ if (!hasInit) {
+ loading = false
+ return@Runnable
+ }
+ }
+
+ try {
+ sendMessage(LOAD_PROGRESS, "加载白名单...")
+ apiInterface.downloadWhitelist(bean.whitelistid, bean.cardverno!!)
+ sendMessage(LOAD_DONE, "加载白名单成功")
+ } catch (ex: Exception) {
+ sendMessage(LOAD_DONE, "加载白名单失败:${ex.message}")
+ if (!hasInit) {
+ loading = false
+ return@Runnable
+ }
+ }
+ if (pos.getSysPara()!!.synoCode) {
+ sendMessage(LOAD_PROGRESS, "激活扫码算法...")
+ if (SynoCodeService().activeByLocalLicense(iLoadView.getActivity().applicationContext)) {
+ SPApplication.getInstance().setSynoCodeActive(true)
+ sendMessage(LOAD_DONE, "晟元算法激活成功")
+ } else {
+ sendMessage(LOAD_DONE, "晟元算法激活失败")
+ SPApplication.getInstance().setSynoCodeActive(false)
+ }
+ } else {
+ SPApplication.getInstance().setSynoCodeActive(false)
+ }
+
+ cfgRecord = pos.getConfigPara()
+ cfgRecord!!.initOK = true
+ pos.replaceConfigPara(cfgRecord!!)
+ sendMessage(LOAD_SUCCESS, "加载成功")
+ })
+ }
+
+ private fun createHandler() {
+ handler = object : Handler(Looper.getMainLooper()) {
+ override fun handleMessage(msg: Message) {
+ when (msg.what) {
+ LOAD_DONE -> iLoadView.showProgress(msg.obj as String, true)
+ LOAD_PROGRESS -> iLoadView.showProgress(msg.obj as String, false)
+ JUMP_TO_UNREGISTER -> iLoadView.jumpToUnregister(msg.obj as String)
+ LOAD_SUCCESS -> {
+ CommonUtil.doSleep(3000)
+ iLoadView.showFinish()
+ }
+ }
+ }
+ }
+ }
+
+ private fun sendMessage(code: Int, info: String) {
+ val msg = Message()
+ msg.what = code
+ msg.obj = info
+ handler.sendMessage(msg)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/manage/IManageView.kt b/app/src/main/java/com/supwisdom/activities/manage/IManageView.kt
index 27bb27f..08627b1 100644
--- a/app/src/main/java/com/supwisdom/activities/manage/IManageView.kt
+++ b/app/src/main/java/com/supwisdom/activities/manage/IManageView.kt
@@ -1,11 +1,15 @@
-package com.supwisdom.activities.manage
-
-/**
- ** create by zzq on 2019/7/25
- ** @desc
- **/
-interface IManageView {
- fun showOperHint(hint: String, result: String)
-
- fun showOperResult(hint: String, result: String)
+package com.supwisdom.activities.manage
+
+import android.app.Activity
+
+/**
+ ** create by zzq on 2019/7/25
+ ** @desc
+ **/
+interface IManageView {
+ fun getActivity(): Activity
+
+ fun showOperHint(hint: String, result: String)
+
+ fun showOperResult(hint: String, result: String)
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/manage/ManageActivity.kt b/app/src/main/java/com/supwisdom/activities/manage/ManageActivity.kt
index ec4b7be..f0f972b 100644
--- a/app/src/main/java/com/supwisdom/activities/manage/ManageActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/manage/ManageActivity.kt
@@ -1,170 +1,177 @@
-package com.supwisdom.activities.manage
-
-import android.os.Bundle
-import android.os.CountDownTimer
-import android.view.KeyEvent
-import com.supwisdom.R
-import com.supwisdom.activities.BaseActivity
-import com.supwisdom.activities.SPApplication
-import com.supwisdom.activities.communicate.CommunicateActivity
-import com.supwisdom.activities.control.ControlActivity
-import com.supwisdom.activities.menu.MenuActivity
-import com.supwisdom.activities.upgrade.UpgradeActivity
-import com.supwisdom.auxscreen.AuxScreenController
-import com.supwisdom.utils.AppExitUtil
-import com.supwisdom.utils.CommonUtil
-import com.supwisdom.utils.DateUtil
-import java.util.*
-
-/**
- ** create by zzq on 2019/7/25
- ** @desc
- **/
-class ManageActivity : BaseActivity(), IManageView {
- private var presenter: ManagePresenter? = null
- private var flag: Boolean = false
- private var isRunning: Boolean = false
- private val pos = SPApplication.getInstance().getPos()
- @Volatile
- private var keyActive = true
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_manage)
- initView()
- initData()
- }
-
- private fun initView() {
-
- }
-
- private fun initData() {
- presenter = ManagePresenter(this)
- }
-
- override fun dispatchKeyEvent(event: KeyEvent): Boolean {
- if (event.action == KeyEvent.ACTION_DOWN) {
- if (isRunning || !keyActive) {
- return super.dispatchKeyEvent(event)
- }
- resetCounter(200)
-
- val keyCode = event.keyCode
- if (flag) {
- return if (KeyEvent.KEYCODE_DEL == keyCode) {
- refresh()
- true
- } else {
- false
- }
- }
- when (keyCode) {
- KeyEvent.KEYCODE_1 -> {
- flag = true
- showShopPassword()
- }
- KeyEvent.KEYCODE_2 -> jumpActivity(CommunicateActivity::class.java)
- KeyEvent.KEYCODE_3 -> {
- //查询流水
- flag = true
- AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("流水查询:", "暂不支持"))
- }
- KeyEvent.KEYCODE_4 -> {
- flag = true
- isRunning = true
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList<String>("正在导出流水", "请稍等..."))
- presenter!!.outTransdtl()
- }
- KeyEvent.KEYCODE_5 -> jumpActivity(UpgradeActivity::class.java)
- KeyEvent.KEYCODE_6 -> {
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList<String>("应用程序已退出", "请到大屏操作"))
- AppExitUtil.exit()
- }
- KeyEvent.KEYCODE_7 -> {
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList<String>("应用程序已退出", "请到大屏操作"))
- CommonUtil.startNetSetting(this)
- }
- KeyEvent.KEYCODE_8 -> {
- flag = true
- isRunning = true
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList<String>("正在清空白名单", "请稍等..."))
- presenter!!.clearAndUpdateWhitelist()
- }
- KeyEvent.KEYCODE_9 -> jumpActivity(ControlActivity::class.java)
- KeyEvent.KEYCODE_DEL ->
- //cancel
- jumpActivity(MenuActivity::class.java)
- }
- }
- return super.dispatchKeyEvent(event)
- }
-
- override fun showOperHint(hint: String, result: String) {
- AuxScreenController.getInstance().refreshContent(Arrays.asList<String>(hint, result))
- }
-
- override fun showOperResult(hint: String, result: String) {
- flag = true
- isRunning = false
- AuxScreenController.getInstance().refreshContent(Arrays.asList<String>(hint, result))
- }
-
- override fun onResume() {
- super.onResume()
- keyActive = true
- refresh()
- }
-
- private fun refresh() {
- flag = false
- isRunning = false
- AuxScreenController.getInstance().refreshTitle("设备管理界面")
- AuxScreenController.getInstance().refreshBottom(DateUtil.getNowDateTime())
- AuxScreenController.getInstance().refreshContent(
- Arrays.asList(
- getString(R.string.consume_menu_shop_passwd),
- getString(R.string.consume_menu_comm_set),
- getString(R.string.consume_menu_unconfirm_transdtl),
- getString(R.string.consume_menu_out_dtl),
- getString(R.string.consume_menu_upgrade),
- getString(R.string.consume_menu_app_exit),
- getString(R.string.consume_menu_setting),
- getString(R.string.consume_menu_clear_blklist),
- getString(R.string.consume_menu_control_set)
- )
- )
- }
-
- private fun showShopPassword() {
- AuxScreenController.getInstance()
- .refreshContent(Arrays.asList<String>("商户密码:", pos.getConfigPara()!!.shopPwd))
- }
-
- private var counter: ContinuePressTimer? = null
-
- private fun resetCounter(timems: Long) {
- counter?.cancel()
- if (counter == null) {
- counter = ContinuePressTimer(timems, 100)
- }
- keyActive = false
- counter!!.start()
- }
-
- private inner class ContinuePressTimer internal constructor(millisInFuture: Long, countDownInterval: Long) :
- CountDownTimer(millisInFuture, countDownInterval) {
-
- override fun onTick(millisUntilFinished: Long) {
-
- }
-
- override fun onFinish() {
- keyActive = true
- }
- }
+package com.supwisdom.activities.manage
+
+import android.app.Activity
+import android.os.Bundle
+import android.os.CountDownTimer
+import android.view.KeyEvent
+import com.supwisdom.R
+import com.supwisdom.activities.BaseActivity
+import com.supwisdom.activities.SPApplication
+import com.supwisdom.activities.communicate.CommunicateActivity
+import com.supwisdom.activities.control.ControlActivity
+import com.supwisdom.activities.menu.MenuActivity
+import com.supwisdom.activities.upgrade.UpgradeActivity
+import com.supwisdom.auxscreen.AuxScreenController
+import com.supwisdom.utils.AppExitUtil
+import com.supwisdom.utils.CommonUtil
+import com.supwisdom.utils.DateUtil
+import java.util.*
+
+/**
+ ** create by zzq on 2019/7/25
+ ** @desc
+ **/
+class ManageActivity : BaseActivity(), IManageView {
+ private var presenter: ManagePresenter? = null
+ private var flag: Boolean = false
+ private var isRunning: Boolean = false
+ private val pos = SPApplication.getInstance().getPos()
+
+ @Volatile
+ private var keyActive = true
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_manage)
+ initView()
+ initData()
+ }
+
+ private fun initView() {
+
+ }
+
+ private fun initData() {
+ presenter = ManagePresenter(this)
+ }
+
+ override fun dispatchKeyEvent(event: KeyEvent): Boolean {
+ if (event.action == KeyEvent.ACTION_DOWN) {
+ if (isRunning || !keyActive) {
+ return super.dispatchKeyEvent(event)
+ }
+ resetCounter(200)
+
+ val keyCode = event.keyCode
+ if (flag) {
+ return if (KeyEvent.KEYCODE_DEL == keyCode) {
+ refresh()
+ true
+ } else {
+ false
+ }
+ }
+ when (keyCode) {
+ KeyEvent.KEYCODE_1 -> {
+ flag = true
+ showShopPassword()
+ }
+ KeyEvent.KEYCODE_2 -> jumpActivity(CommunicateActivity::class.java)
+ KeyEvent.KEYCODE_3 -> {
+ //查询流水
+ flag = true
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList<String>("流水查询:", "暂不支持"))
+ }
+ KeyEvent.KEYCODE_4 -> {
+ flag = true
+ presenter!!.doSynoActive()
+ }
+ KeyEvent.KEYCODE_5 -> jumpActivity(UpgradeActivity::class.java)
+ KeyEvent.KEYCODE_6 -> {
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList<String>("应用程序已退出", "请到大屏操作"))
+ AppExitUtil.exit()
+ }
+ KeyEvent.KEYCODE_7 -> {
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList<String>("应用程序已退出", "请到大屏操作"))
+ CommonUtil.startNetSetting(this)
+ }
+ KeyEvent.KEYCODE_8 -> {
+ flag = true
+ isRunning = true
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList<String>("正在清空白名单", "请稍等..."))
+ presenter!!.clearAndUpdateWhitelist()
+ }
+ KeyEvent.KEYCODE_9 -> jumpActivity(ControlActivity::class.java)
+ KeyEvent.KEYCODE_DEL ->
+ //cancel
+ jumpActivity(MenuActivity::class.java)
+ }
+ }
+ return super.dispatchKeyEvent(event)
+ }
+
+ override fun showOperHint(hint: String, result: String) {
+ AuxScreenController.getInstance().refreshContent(Arrays.asList<String>(hint, result))
+ }
+
+ override fun showOperResult(hint: String, result: String) {
+ flag = true
+ isRunning = false
+ AuxScreenController.getInstance().refreshContent(Arrays.asList<String>(hint, result))
+ }
+
+ override fun onResume() {
+ super.onResume()
+ keyActive = true
+ refresh()
+ }
+
+ private fun refresh() {
+ flag = false
+ isRunning = false
+ AuxScreenController.getInstance().refreshTitle("设备管理界面")
+ AuxScreenController.getInstance().refreshBottom(DateUtil.getNowDateTime())
+ AuxScreenController.getInstance().refreshContent(
+ Arrays.asList(
+ getString(R.string.consume_menu_shop_passwd),
+ getString(R.string.consume_menu_comm_set),
+ getString(R.string.consume_menu_unconfirm_transdtl),
+ getString(R.string.consume_menu_syno_active),
+ getString(R.string.consume_menu_upgrade),
+ getString(R.string.consume_menu_app_exit),
+ getString(R.string.consume_menu_setting),
+ getString(R.string.consume_menu_clear_blklist),
+ getString(R.string.consume_menu_control_set)
+ )
+ )
+ }
+
+ private fun showShopPassword() {
+ AuxScreenController.getInstance()
+ .refreshContent(Arrays.asList<String>("商户密码:", pos.getConfigPara()!!.shopPwd))
+ }
+
+ override fun getActivity(): Activity {
+ return this
+ }
+
+ private var counter: ContinuePressTimer? = null
+
+ private fun resetCounter(timems: Long) {
+ counter?.cancel()
+ if (counter == null) {
+ counter = ContinuePressTimer(timems, 100)
+ }
+ keyActive = false
+ counter!!.start()
+ }
+
+ private inner class ContinuePressTimer internal constructor(
+ millisInFuture: Long,
+ countDownInterval: Long
+ ) :
+ CountDownTimer(millisInFuture, countDownInterval) {
+
+ override fun onTick(millisUntilFinished: Long) {
+
+ }
+
+ override fun onFinish() {
+ keyActive = true
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/manage/ManagePresenter.kt b/app/src/main/java/com/supwisdom/activities/manage/ManagePresenter.kt
index 681d57d..bab3996 100644
--- a/app/src/main/java/com/supwisdom/activities/manage/ManagePresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/manage/ManagePresenter.kt
@@ -1,102 +1,133 @@
-package com.supwisdom.activities.manage
-
-import android.os.AsyncTask
-import com.supwisdom.activities.SPApplication
-import com.supwisdom.bean.BaseResp
-import com.supwisdom.exception.WhiteListError
-import com.supwisdom.service.EpayApiImpl
-import com.supwisdom.utils.FileUtil
-import com.supwisdom.utils.PublicDef
-
-/**
- ** create by zzq on 2019/7/25
- ** @desc
- **/
-class ManagePresenter constructor(iManageView: IManageView) {
- private val iManageView = iManageView
- private val pos = SPApplication.getInstance().getPos()
-
- fun clearAndUpdateWhitelist() {
- if (!SPApplication.getInstance().isOnline()) {
- iManageView.showOperHint("重置黑名单失败", "网络未联通")
- return
- }
- ClearWhiteList().execute()
- }
-
- fun reloadTransdtl() {
- if (!SPApplication.getInstance().isOnline()) {
- iManageView.showOperHint("补采流水失败", "网络未联通")
- return
- }
- iManageView.showOperHint("正在补采流水", "请稍等...")
- ReloadTransdtl().execute()
- }
-
- fun outTransdtl() {
- iManageView.showOperHint("正在导出流水", "请稍等...")
- OutTransdtl().execute()
- }
-
- private inner class ReloadTransdtl : AsyncTask<Void, Int, BaseResp>() {
- override fun onPostExecute(resp: BaseResp) {
- if (resp.retcode == PublicDef.SUCCESS) {
- iManageView.showOperResult("补采流水成功", resp.retmsg!!)
- } else {
- iManageView.showOperResult("补采流水失败", resp.retmsg!!)
- }
- }
-
- override fun doInBackground(vararg params: Void): BaseResp {
- return BaseResp(PublicDef.ERROR, "暂未实现")
- }
- }
-
- private inner class ClearWhiteList : AsyncTask<Void, Int, BaseResp>() {
- override fun onPostExecute(resp: BaseResp) {
- if (resp.retcode == PublicDef.SUCCESS) {
- iManageView.showOperResult("白名单更新成功", "")
- } else {
- iManageView.showOperResult("白名单更新失败", resp.retmsg!!)
- }
- }
-
- override fun doInBackground(vararg params: Void): BaseResp {
- if (!pos.clearWhiteList()) {
- return BaseResp(PublicDef.ERROR, "清空白名单失败")
- }
- val dyRecord = pos.getDynamicPara()
- dyRecord!!.cardverno = "0"
- pos.replaceDynamicPara(dyRecord)
- return try {
- EpayApiImpl().downloadWhitelist(dyRecord.whitelistid, "0")
- BaseResp(PublicDef.SUCCESS, "更新成功")
- } catch (ex: Exception) {
- BaseResp(PublicDef.ERROR, ex.message)
- }
- }
- }
-
- private inner class OutTransdtl : AsyncTask<Void, Int, BaseResp>() {
- override fun doInBackground(vararg params: Void): BaseResp {
- var num = 0
- pos.getTransdtlOnline().forEach {
- num++
- FileUtil.writeDtlFile(it.toString())
- }
- pos.getTransdtlOffline().forEach {
- num++
- FileUtil.writeDtlFile(it.toString())
- }
- return BaseResp(PublicDef.SUCCESS, "共导出" + num + "笔")
- }
-
- override fun onPostExecute(resp: BaseResp) {
- if (resp.retcode == PublicDef.SUCCESS) {
- iManageView.showOperResult("导出流水成功", resp.retmsg!!)
- } else {
- iManageView.showOperResult("导出流水失败", resp.retmsg!!)
- }
- }
- }
+package com.supwisdom.activities.manage
+
+import android.os.AsyncTask
+import com.supwisdom.activities.SPApplication
+import com.supwisdom.bean.BaseResp
+import com.supwisdom.service.EpayApiImpl
+import com.supwisdom.service.SynoCodeService
+import com.supwisdom.utils.FileUtil
+import com.supwisdom.utils.PublicDef
+
+/**
+ ** create by zzq on 2019/7/25
+ ** @desc
+ **/
+class ManagePresenter constructor(private val iManageView: IManageView) {
+ private val pos = SPApplication.getInstance().getPos()
+
+ fun doSynoActive() {
+ if (pos.getSysPara()!!.synoCode) {
+ //晟元激活
+ iManageView.showOperHint("晟元激活", "请连外网激活")
+ SynoActive().execute()
+ } else {
+ SPApplication.getInstance().setSynoCodeActive(false)
+ iManageView.showOperResult("晟元激活结果:", "前台未开启")
+ }
+ }
+
+ private inner class SynoActive : AsyncTask<Void, Int, BaseResp>() {
+ override fun onPostExecute(resp: BaseResp) {
+ if (resp.retcode == PublicDef.SUCCESS) {
+ iManageView.showOperResult("晟元激活结果", resp.getErrorMsg())
+ } else {
+ iManageView.showOperResult("晟元激活失败", resp.getErrorMsg())
+ }
+ }
+
+ override fun doInBackground(vararg params: Void): BaseResp {
+ val resp = SynoCodeService().synoCodeActive(iManageView.getActivity())
+ return if (resp.retcode == PublicDef.SUCCESS) {
+ SPApplication.getInstance().setSynoCodeActive(true)
+ SynoCodeService().uploadActiveLicense()
+ } else {
+ SPApplication.getInstance().setSynoCodeActive(false)
+ resp
+ }
+ }
+ }
+
+ fun clearAndUpdateWhitelist() {
+ if (!SPApplication.getInstance().isOnline()) {
+ iManageView.showOperHint("重置黑名单失败", "网络未联通")
+ return
+ }
+ ClearWhiteList().execute()
+ }
+
+ fun reloadTransdtl() {
+ if (!SPApplication.getInstance().isOnline()) {
+ iManageView.showOperHint("补采流水失败", "网络未联通")
+ return
+ }
+ iManageView.showOperHint("正在补采流水", "请稍等...")
+ ReloadTransdtl().execute()
+ }
+
+ fun outTransdtl() {
+ iManageView.showOperHint("正在导出流水", "请稍等...")
+ OutTransdtl().execute()
+ }
+
+ private inner class ReloadTransdtl : AsyncTask<Void, Int, BaseResp>() {
+ override fun onPostExecute(resp: BaseResp) {
+ if (resp.retcode == PublicDef.SUCCESS) {
+ iManageView.showOperResult("补采流水成功", resp.retmsg!!)
+ } else {
+ iManageView.showOperResult("补采流水失败", resp.retmsg!!)
+ }
+ }
+
+ override fun doInBackground(vararg params: Void): BaseResp {
+ return BaseResp(PublicDef.ERROR, "暂未实现")
+ }
+ }
+
+ private inner class ClearWhiteList : AsyncTask<Void, Int, BaseResp>() {
+ override fun onPostExecute(resp: BaseResp) {
+ if (resp.retcode == PublicDef.SUCCESS) {
+ iManageView.showOperResult("白名单更新成功", "")
+ } else {
+ iManageView.showOperResult("白名单更新失败", resp.retmsg!!)
+ }
+ }
+
+ override fun doInBackground(vararg params: Void): BaseResp {
+ if (!pos.clearWhiteList()) {
+ return BaseResp(PublicDef.ERROR, "清空白名单失败")
+ }
+ val dyRecord = pos.getDynamicPara()
+ dyRecord!!.cardverno = "0"
+ pos.replaceDynamicPara(dyRecord)
+ return try {
+ EpayApiImpl().downloadWhitelist(dyRecord.whitelistid, "0")
+ BaseResp(PublicDef.SUCCESS, "更新成功")
+ } catch (ex: Exception) {
+ BaseResp(PublicDef.ERROR, ex.message)
+ }
+ }
+ }
+
+ private inner class OutTransdtl : AsyncTask<Void, Int, BaseResp>() {
+ override fun doInBackground(vararg params: Void): BaseResp {
+ var num = 0
+ pos.getTransdtlOnline().forEach {
+ num++
+ FileUtil.writeDtlFile(it.toString())
+ }
+ pos.getTransdtlOffline().forEach {
+ num++
+ FileUtil.writeDtlFile(it.toString())
+ }
+ return BaseResp(PublicDef.SUCCESS, "共导出" + num + "笔")
+ }
+
+ override fun onPostExecute(resp: BaseResp) {
+ if (resp.retcode == PublicDef.SUCCESS) {
+ iManageView.showOperResult("导出流水成功", resp.retmsg!!)
+ } else {
+ iManageView.showOperResult("导出流水失败", resp.retmsg!!)
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt b/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
index 82d0bf8..6c0b764 100644
--- a/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
@@ -1,175 +1,192 @@
-package com.supwisdom.activities.syspara
-
-import android.os.Bundle
-import android.os.CountDownTimer
-import android.view.KeyEvent
-import android.widget.ListView
-import com.supwisdom.R
-import com.supwisdom.activities.BaseActivity
-import com.supwisdom.activities.SPApplication
-import com.supwisdom.activities.menu.MenuActivity
-import com.supwisdom.activities.syspara.adapter.SysparaAdapter
-import com.supwisdom.auxscreen.AuxScreenController
-import com.supwisdom.entity.ControlParaRecord
-import com.supwisdom.utils.CommonUtil
-import java.util.*
-
-/**
- ** create by zzq on 2019/7/26
- ** @desc
- **/
-class SysparaActivity : BaseActivity() {
- private var pageno: Int = 0
- private val PAGENUM = 3
- private val kvMap = hashMapOf<Int, ControlParaRecord>()
- private var index: Int = 0
- private val pos = SPApplication.getInstance().getPos()
- private var keyActive = true
- private var adapter: SysparaAdapter? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_syspara)
- initView()
- initData()
- }
-
- private fun initData() {
- index = 0
- kvMap[index++] = ControlParaRecord("软件版本>>", CommonUtil.getVersionName(applicationContext))
- val cfgRecord = pos.getConfigPara()
- val sysRecord = pos.getSysPara()
- val dyRecord = pos.getDynamicPara()
- kvMap[index++] = ControlParaRecord("租户名>>", cfgRecord!!.tenantId!!)
- kvMap[index++] = ControlParaRecord("物理编号>>", cfgRecord.devphyid!!)
- kvMap[index++] = ControlParaRecord("服务器地址>>", cfgRecord.epayIP!!)
- kvMap[index++] = ControlParaRecord("服务器标识>>", cfgRecord.epayUri!!)
- kvMap[index++] = ControlParaRecord("服务器端口>>", "" + cfgRecord.epayPort)
- kvMap[index++] =
- ControlParaRecord("参数版本号>>", "no:${dyRecord!!.paraverno},id:${dyRecord.paragroupid}")
- kvMap[index++] = ControlParaRecord("白名单版本>>", dyRecord.cardverno ?: "null")
- kvMap[index++] = ControlParaRecord("通讯超时>>", "${CommonUtil.getCommunicateTime()}s")
- if (sysRecord!!.returnFlag and 0x1 == 1) {
- kvMap[index++] = ControlParaRecord("冲正使能>>", "启用")
- } else {
- kvMap[index++] = ControlParaRecord("冲正使能>>", "禁止")
- }
-// if (sysRecord.getSocketSwitch() === 0) {
-// kvMap[index++] = ControlParaRecord("长连接使能>>", "禁止")
-// } else {
-// kvMap[index++] = ControlParaRecord("长连接使能>>", "启用")
-// }
-// if (SPApplication.getInstance().isOnline()) {
-// kvMap[index++] = ControlParaRecord("网络状态>>", "联机")
-// } else {
-// kvMap[index++] = ControlParaRecord("网络状态>>", "脱机")
-// }
- kvMap[index++] = ControlParaRecord("成功显时间>>", "${sysRecord.sucShowtime}s")
- kvMap[index++] = ControlParaRecord("失败显时间>>", "${sysRecord.failShowtime}s")
- kvMap[index++] = ControlParaRecord("联机流水号>>", pos.getTransdtlOnlineMaxSeqno().toString())
- kvMap[index++] = ControlParaRecord("离线流水号>>", pos.getTransdtlOfflineMaxSeqno().toString())
- kvMap[index++] = ControlParaRecord("未上传流水>>", pos.getTransdtlUnconfirmNum().toString())
- kvMap[index++] = ControlParaRecord("最大脱机天数>>", String.format("%d天", sysRecord.maxOfflineDays))
- kvMap[index++] = ControlParaRecord("当天离线最大金额>>", String.format("%.02f元", sysRecord.maxDayOfflineAmt / 100.0f))
- kvMap[index++] = ControlParaRecord("定额间隔时间(s)>>", "${sysRecord.fixpayGap}s")
- kvMap[index++] = ControlParaRecord("心跳间隔>>", "${sysRecord.heatBeat}s")
- }
-
- private fun initView() {
- val vParamList = this.findViewById<ListView>(R.id.lv_param) as ListView
- adapter = SysparaAdapter(this)
- vParamList.adapter = adapter
- }
-
- override fun dispatchKeyEvent(event: KeyEvent): Boolean {
- if (event.action == KeyEvent.ACTION_DOWN) {
- if (!keyActive) {
- return super.dispatchKeyEvent(event)
- }
- resetCounter(200)
-
- when (event.keyCode) {
- KeyEvent.KEYCODE_DPAD_DOWN -> {
- //F3
- pageno++
- if (kvMap.size <= pageno * PAGENUM) {
- pageno--
- } else {
- showPara()
- }
- return true
- }
- KeyEvent.KEYCODE_DPAD_RIGHT -> {
- //F4
- if (pageno > 0) {
- pageno--
- showPara()
- }
- return true
- }
- //case KeyEvent.KEYCODE_DPAD_UP:
- //F2
- KeyEvent.KEYCODE_DEL -> {
- //cancel
- jumpActivity(MenuActivity::class.java)
- return true
- }
- }
- }
- return super.dispatchKeyEvent(event)
- }
-
- override fun onResume() {
- super.onResume()
- keyActive = true
- pageno = 0
- showPara()
- }
-
- private fun showPara() {
- val paraList = ArrayList<ControlParaRecord>()
- val auxList = ArrayList<String>()
- for (i in 0 until PAGENUM) {
- val index = pageno * PAGENUM + i
- if (index < kvMap.size) {
- auxList.add(kvMap[index]!!.paraname!!)
- auxList.add(kvMap[index]!!.paraval!!)
- } else {
- auxList.add(" ")
- auxList.add(" ")
- }
- }
- for (i in 0 until kvMap.size) {
- paraList.add(kvMap[i]!!)
- }
- adapter!!.setList(paraList)
- adapter!!.notifyDataSetChanged()
-
- AuxScreenController.getInstance().refreshTitle("设备参数查询")
- AuxScreenController.getInstance().refreshBottom("F3/F4 切换翻页")
- AuxScreenController.getInstance().refreshContent(auxList)
- }
-
- private var counter: ContinuePressTimer? = null
-
- private fun resetCounter(timems: Long) {
- counter?.cancel()
- if (counter == null) {
- counter = ContinuePressTimer(timems, 100)
- }
- keyActive = false
- counter!!.start()
- }
-
- private inner class ContinuePressTimer internal constructor(millisInFuture: Long, countDownInterval: Long) :
- CountDownTimer(millisInFuture, countDownInterval) {
-
- override fun onTick(millisUntilFinished: Long) {
-
- }
-
- override fun onFinish() {
- keyActive = true
- }
- }
+package com.supwisdom.activities.syspara
+
+import android.os.Bundle
+import android.os.CountDownTimer
+import android.view.KeyEvent
+import android.widget.ListView
+import com.supwisdom.R
+import com.supwisdom.activities.BaseActivity
+import com.supwisdom.activities.SPApplication
+import com.supwisdom.activities.menu.MenuActivity
+import com.supwisdom.activities.syspara.adapter.SysparaAdapter
+import com.supwisdom.auxscreen.AuxScreenController
+import com.supwisdom.entity.ControlParaRecord
+import com.supwisdom.utils.CommonUtil
+import com.supwisdom.utils.PublicDef
+import java.util.*
+
+/**
+ ** create by zzq on 2019/7/26
+ ** @desc
+ **/
+class SysparaActivity : BaseActivity() {
+ private var pageno: Int = 0
+ private val PAGENUM = 3
+ private val kvMap = hashMapOf<Int, ControlParaRecord>()
+ private var index: Int = 0
+ private val pos = SPApplication.getInstance().getPos()
+ private var keyActive = true
+ private var adapter: SysparaAdapter? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_syspara)
+ initView()
+ initData()
+ }
+
+ private fun initData() {
+ index = 0
+ kvMap[index++] = ControlParaRecord("软件版本>>", CommonUtil.getVersionName(applicationContext))
+ kvMap[index++] = ControlParaRecord("启动时间>>", SPApplication.getInstance().getStartime())
+ kvMap[index++] = ControlParaRecord("设备序列号>>", CommonUtil.getSerialNumber())
+ val cfgRecord = pos.getConfigPara()
+ val sysRecord = pos.getSysPara()
+ val dyRecord = pos.getDynamicPara()
+ kvMap[index++] = ControlParaRecord("租户名>>", cfgRecord!!.tenantId!!)
+ kvMap[index++] = ControlParaRecord("物理编号>>", cfgRecord.devphyid!!)
+ kvMap[index++] = ControlParaRecord("服务器地址>>", cfgRecord.epayIP!!)
+ kvMap[index++] = ControlParaRecord("服务器标识>>", cfgRecord.epayUri!!)
+ kvMap[index++] = ControlParaRecord("服务器端口>>", "" + cfgRecord.epayPort)
+ kvMap[index++] =
+ ControlParaRecord("参数版本号>>", "no:${dyRecord!!.paraverno},id:${dyRecord.paragroupid}")
+ kvMap[index++] = ControlParaRecord("白名单版本>>", dyRecord.cardverno ?: "null")
+ kvMap[index++] = ControlParaRecord("通讯超时>>", "${CommonUtil.getCommunicateTime()}s")
+ if (sysRecord!!.returnFlag and 0x1 == 1) {
+ kvMap[index++] = ControlParaRecord("冲正使能>>", "启用")
+ } else {
+ kvMap[index++] = ControlParaRecord("冲正使能>>", "禁止")
+ }
+ if (sysRecord.synoCode) {
+ kvMap[index++] = ControlParaRecord("晟元扫码>>", "开启")
+ val ctlRecord = pos.getControlPara(PublicDef.CONTROL_SYNOCODE_ACTIVE)
+ if (ctlRecord != null) {
+ kvMap[index++] = ControlParaRecord("晟元扫码>>", ctlRecord.paraval ?: "null")
+ } else {
+ kvMap[index++] = ControlParaRecord("晟元扫码>>", "未使用")
+ }
+ } else {
+ kvMap[index++] = ControlParaRecord("晟元扫码>>", "关闭")
+ }
+ kvMap[index++] = ControlParaRecord("成功显时间>>", "${sysRecord.sucShowtime}s")
+ kvMap[index++] = ControlParaRecord("失败显时间>>", "${sysRecord.failShowtime}s")
+ kvMap[index++] = ControlParaRecord("联机流水号>>", pos.getTransdtlOnlineMaxSeqno().toString())
+ kvMap[index++] = ControlParaRecord("离线流水号>>", pos.getTransdtlOfflineMaxSeqno().toString())
+ kvMap[index++] = ControlParaRecord("未上传流水>>", pos.getTransdtlUnconfirmNum().toString())
+ kvMap[index++] = ControlParaRecord(
+ "最大脱机天数>>", String.format(
+ "%d天",
+ sysRecord.maxOfflineDays
+ )
+ )
+ kvMap[index++] = ControlParaRecord(
+ "当天离线最大金额>>", String.format(
+ "%.02f元",
+ sysRecord.maxDayOfflineAmt / 100.0f
+ )
+ )
+ kvMap[index++] = ControlParaRecord("定额间隔时间(s)>>", "${sysRecord.fixpayGap}s")
+ kvMap[index++] = ControlParaRecord("心跳间隔>>", "${sysRecord.heatBeat}s")
+ }
+
+ private fun initView() {
+ val vParamList = this.findViewById<ListView>(R.id.lv_param) as ListView
+ adapter = SysparaAdapter(this)
+ vParamList.adapter = adapter
+ }
+
+ override fun dispatchKeyEvent(event: KeyEvent): Boolean {
+ if (event.action == KeyEvent.ACTION_DOWN) {
+ if (!keyActive) {
+ return super.dispatchKeyEvent(event)
+ }
+ resetCounter(200)
+
+ when (event.keyCode) {
+ KeyEvent.KEYCODE_DPAD_DOWN -> {
+ //F3
+ pageno++
+ if (kvMap.size <= pageno * PAGENUM) {
+ pageno--
+ } else {
+ showPara()
+ }
+ return true
+ }
+ KeyEvent.KEYCODE_DPAD_RIGHT -> {
+ //F4
+ if (pageno > 0) {
+ pageno--
+ showPara()
+ }
+ return true
+ }
+ //case KeyEvent.KEYCODE_DPAD_UP:
+ //F2
+ KeyEvent.KEYCODE_DEL -> {
+ //cancel
+ jumpActivity(MenuActivity::class.java)
+ return true
+ }
+ }
+ }
+ return super.dispatchKeyEvent(event)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ keyActive = true
+ pageno = 0
+ showPara()
+ }
+
+ private fun showPara() {
+ val paraList = ArrayList<ControlParaRecord>()
+ val auxList = ArrayList<String>()
+ for (i in 0 until PAGENUM) {
+ val index = pageno * PAGENUM + i
+ if (index < kvMap.size) {
+ auxList.add(kvMap[index]!!.paraname!!)
+ auxList.add(kvMap[index]!!.paraval!!)
+ } else {
+ auxList.add(" ")
+ auxList.add(" ")
+ }
+ }
+ for (i in 0 until kvMap.size) {
+ paraList.add(kvMap[i]!!)
+ }
+ adapter!!.setList(paraList)
+ adapter!!.notifyDataSetChanged()
+
+ AuxScreenController.getInstance().refreshTitle("设备参数查询")
+ AuxScreenController.getInstance().refreshBottom("F3/F4 切换翻页")
+ AuxScreenController.getInstance().refreshContent(auxList)
+ }
+
+ private var counter: ContinuePressTimer? = null
+
+ private fun resetCounter(timems: Long) {
+ counter?.cancel()
+ if (counter == null) {
+ counter = ContinuePressTimer(timems, 100)
+ }
+ keyActive = false
+ counter!!.start()
+ }
+
+ private inner class ContinuePressTimer internal constructor(
+ millisInFuture: Long,
+ countDownInterval: Long
+ ) :
+ CountDownTimer(millisInFuture, countDownInterval) {
+
+ override fun onTick(millisUntilFinished: Long) {
+
+ }
+
+ override fun onFinish() {
+ keyActive = true
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/bean/EpaySynoActiveReqBean.java b/app/src/main/java/com/supwisdom/bean/EpaySynoActiveReqBean.java
new file mode 100644
index 0000000..0cc0280
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/bean/EpaySynoActiveReqBean.java
@@ -0,0 +1,17 @@
+package com.supwisdom.bean;
+
+/**
+ * * create by zzq on 2020/8/24
+ * * @desc
+ **/
+public class EpaySynoActiveReqBean {
+ private String license;
+
+ public String getLicense() {
+ return license;
+ }
+
+ public void setLicense(String license) {
+ this.license = license;
+ }
+}
diff --git a/app/src/main/java/com/supwisdom/bean/EpaySynoActiveRetBean.java b/app/src/main/java/com/supwisdom/bean/EpaySynoActiveRetBean.java
new file mode 100644
index 0000000..ec06e46
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/bean/EpaySynoActiveRetBean.java
@@ -0,0 +1,26 @@
+package com.supwisdom.bean;
+
+/**
+ * * create by zzq on 2020/8/24
+ * * @desc
+ **/
+public class EpaySynoActiveRetBean {
+ private String license; // 授权文件
+ private String timestamp; // 时间戳
+
+ public String getLicense() {
+ return license;
+ }
+
+ public void setLicense(String license) {
+ this.license = license;
+ }
+
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+}
diff --git a/app/src/main/java/com/supwisdom/bean/EpaySynoLicenseUploadRetBean.java b/app/src/main/java/com/supwisdom/bean/EpaySynoLicenseUploadRetBean.java
new file mode 100644
index 0000000..554b4ec
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/bean/EpaySynoLicenseUploadRetBean.java
@@ -0,0 +1,35 @@
+package com.supwisdom.bean;
+
+/**
+ * * create by zzq on 2020/8/24
+ * * @desc
+ **/
+public class EpaySynoLicenseUploadRetBean {
+ private int code;
+ private String message;
+ private String timestamp;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+}
diff --git a/app/src/main/java/com/supwisdom/bean/EpaySynoRegisterReqBean.java b/app/src/main/java/com/supwisdom/bean/EpaySynoRegisterReqBean.java
new file mode 100644
index 0000000..920551b
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/bean/EpaySynoRegisterReqBean.java
@@ -0,0 +1,26 @@
+package com.supwisdom.bean;
+
+/**
+ * * create by zzq on 2020/8/24
+ * * @desc
+ **/
+public class EpaySynoRegisterReqBean {
+ private String schoolCode;
+ private String termDateTime;
+
+ public String getSchoolCode() {
+ return schoolCode;
+ }
+
+ public void setSchoolCode(String schoolCode) {
+ this.schoolCode = schoolCode;
+ }
+
+ public String getTermDateTime() {
+ return termDateTime;
+ }
+
+ public void setTermDateTime(String termDateTime) {
+ this.termDateTime = termDateTime;
+ }
+}
diff --git a/app/src/main/java/com/supwisdom/bean/EpaySynoRegisterStatusRetBean.java b/app/src/main/java/com/supwisdom/bean/EpaySynoRegisterStatusRetBean.java
new file mode 100644
index 0000000..bb51445
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/bean/EpaySynoRegisterStatusRetBean.java
@@ -0,0 +1,26 @@
+package com.supwisdom.bean;
+
+/**
+ * * create by zzq on 2020/8/24
+ * * @desc
+ **/
+public class EpaySynoRegisterStatusRetBean {
+ private String timestamp;
+ private String status; //可选值:unregister , unauthorized , authorized , activated
+
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+}
diff --git a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
index 66047bc..57adf5a 100644
--- a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
+++ b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
@@ -1,124 +1,125 @@
-package com.supwisdom.db
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-object BeanPropEnum {
- enum class Syspara {
- id,
- returnFlag,
- heatBeat,
- offlineEnable,
- maxOfflineDays,
- maxDayOfflineAmt,
- mngpasswd,
- fixpayGap,
- consumeShowtime,
- consumeFailShowtime,
- commTime
- }
-
- enum class ConfigPara {
- id,
- mode,
- tenantid,
- devphyid,
- psamno,
- epayIP,
- epayPort,
- epayUri,
- managePwd,
- initOK
- }
-
- enum class DynamicPara {
- id,
- appid,
- appsecret,
- deviceid,
- merchaccno,
- shopname,
- onlineseqno,
- offlineseqno,
- paraverno,
- paragroupid,
- whitelistid,
- cardverno,
- jwt,
- jwtexpire,
- token
- }
-
- enum class ControlPara {
- paraname,
- paraval
- }
-
- enum class TransdtlOnline {
- devphyid,
- transdate,
- transtime,
- devseqno,
- cardno,
- cardphyid,
- qrcode,
- transtype,
- payamt,
- extraamt,
- managefeetype,
- username,
- billno,
- reversalflag,
- reversalbillno,
- status,
- upflag
- }
-
- enum class TransdtlOffline {
- devphyid,
- transdate,
- transtime,
- devseqno,
- cardno,
- cardphyid,
- payamt,
- extraamt,
- reversalflag,
- reversalseqno,
- reversaltransdate,
- reversaltranstime,
- status,
- upflag
- }
-
- enum class WhiteList {
- cardphyid,
- cardno,
- status
- }
-
- enum class TransdtlUnion {
- username,
- cardno,
- transdate,
- transtime,
- devseqno,
- payway,
- reversalflag,
- payamt,
- status,
- upflag
- }
-
- enum class HotkeyPay {
- key,
- amount
- }
- enum class PeriodFixPay{
- id,
- begintime,
- endtime,
- amount
- }
+package com.supwisdom.db
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+object BeanPropEnum {
+ enum class Syspara {
+ id,
+ returnFlag,
+ heatBeat,
+ offlineEnable,
+ maxOfflineDays,
+ maxDayOfflineAmt,
+ mngpasswd,
+ fixpayGap,
+ consumeShowtime,
+ consumeFailShowtime,
+ commTime,
+ synoCode
+ }
+
+ enum class ConfigPara {
+ id,
+ mode,
+ tenantid,
+ devphyid,
+ psamno,
+ epayIP,
+ epayPort,
+ epayUri,
+ managePwd,
+ initOK
+ }
+
+ enum class DynamicPara {
+ id,
+ appid,
+ appsecret,
+ deviceid,
+ merchaccno,
+ shopname,
+ onlineseqno,
+ offlineseqno,
+ paraverno,
+ paragroupid,
+ whitelistid,
+ cardverno,
+ jwt,
+ jwtexpire,
+ token
+ }
+
+ enum class ControlPara {
+ paraname,
+ paraval
+ }
+
+ enum class TransdtlOnline {
+ devphyid,
+ transdate,
+ transtime,
+ devseqno,
+ cardno,
+ cardphyid,
+ qrcode,
+ transtype,
+ payamt,
+ extraamt,
+ managefeetype,
+ username,
+ billno,
+ reversalflag,
+ reversalbillno,
+ status,
+ upflag
+ }
+
+ enum class TransdtlOffline {
+ devphyid,
+ transdate,
+ transtime,
+ devseqno,
+ cardno,
+ cardphyid,
+ payamt,
+ extraamt,
+ reversalflag,
+ reversalseqno,
+ reversaltransdate,
+ reversaltranstime,
+ status,
+ upflag
+ }
+
+ enum class WhiteList {
+ cardphyid,
+ cardno,
+ status
+ }
+
+ enum class TransdtlUnion {
+ username,
+ cardno,
+ transdate,
+ transtime,
+ devseqno,
+ payway,
+ reversalflag,
+ payamt,
+ status,
+ upflag
+ }
+
+ enum class HotkeyPay {
+ key,
+ amount
+ }
+ enum class PeriodFixPay{
+ id,
+ begintime,
+ endtime,
+ amount
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt b/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt
index 1b7df2d..4d6a35b 100644
--- a/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt
+++ b/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt
@@ -1,120 +1,122 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.ConfigParaRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class ConfigParaDao constructor(context: Context) {
- private val INDEX = "1"
- private val TABLE = DBLocalHelper.TABLE_NAME_CONFIGPARA
- private val dbHelper = DBLocalHelper.getInstance(context)
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun replace(record: ConfigParaRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun update(record: ConfigParaRecord): Boolean {
- val db = dbHelper.writableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.update(
- TABLE,
- values,
- BeanPropEnum.ConfigPara.id.toString() + "=?",
- arrayOf(INDEX)
- ) > 0
- ) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun get(): ConfigParaRecord? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- try {
- cursor = db.query(
- TABLE, null, BeanPropEnum.ConfigPara.id.toString() + "=?",
- arrayOf(INDEX), null, null, null
- )
- if (cursor != null && cursor.moveToNext()) {
- return getRecord(cursor)
- }
- } finally {
- cursor?.close()
- }
- return null
- }
-
- private fun getRecord(cursor: Cursor): ConfigParaRecord {
- val record = ConfigParaRecord()
- record.mode = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.ConfigPara.mode.toString()))
- record.tenantId = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.tenantid.toString()))
- record.devphyid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.devphyid.toString()))
- record.epayIP = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.epayIP.toString()))
- record.epayPort = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.ConfigPara.epayPort.toString()))
- record.epayUri = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.epayUri.toString()))
- record.shopPwd = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.managePwd.toString()))
- val value = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.ConfigPara.initOK.toString()))
- record.initOK = value == 1
- return record
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getContentValues(record: ConfigParaRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.ConfigPara.id.toString(), INDEX)
- values.put(BeanPropEnum.ConfigPara.mode.toString(), record.mode)
- values.put(BeanPropEnum.ConfigPara.tenantid.toString(), record.tenantId)
- values.put(BeanPropEnum.ConfigPara.devphyid.toString(), record.devphyid)
- values.put(BeanPropEnum.ConfigPara.epayIP.toString(), record.epayIP)
- values.put(BeanPropEnum.ConfigPara.epayPort.toString(), record.epayPort)
- values.put(BeanPropEnum.ConfigPara.epayUri.toString(), record.epayUri)
- values.put(BeanPropEnum.ConfigPara.managePwd.toString(), record.shopPwd)
- if (record.initOK) {
- values.put(BeanPropEnum.ConfigPara.initOK.toString(), 1)
- } else {
- values.put(BeanPropEnum.ConfigPara.initOK.toString(), 0)
- }
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.ConfigParaRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class ConfigParaDao constructor(context: Context) {
+ private val INDEX = "1"
+ private val TABLE = DBLocalHelper.TABLE_NAME_CONFIGPARA
+ private val dbHelper = DBLocalHelper.getInstance(context)
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun replace(record: ConfigParaRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun update(record: ConfigParaRecord): Boolean {
+ val db = dbHelper.writableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.update(
+ TABLE,
+ values,
+ BeanPropEnum.ConfigPara.id.toString() + "=?",
+ arrayOf(INDEX)
+ ) > 0
+ ) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun get(): ConfigParaRecord? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ try {
+ cursor = db.query(
+ TABLE, null, BeanPropEnum.ConfigPara.id.toString() + "=?",
+ arrayOf(INDEX), null, null, null
+ )
+ if (cursor != null && cursor.moveToNext()) {
+ return getRecord(cursor)
+ }
+ } finally {
+ cursor?.close()
+ }
+ return null
+ }
+
+ private fun getRecord(cursor: Cursor): ConfigParaRecord {
+ val record = ConfigParaRecord()
+ record.mode = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.ConfigPara.mode.toString()))
+ record.tenantId = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.tenantid.toString()))
+ record.devphyid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.devphyid.toString()))
+ record.epayIP = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.epayIP.toString()))
+ record.epayPort = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.ConfigPara.epayPort.toString()))
+ record.epayUri = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.epayUri.toString()))
+ record.shopPwd = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ConfigPara.managePwd.toString()))
+ val value = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.ConfigPara.initOK.toString()))
+ record.initOK = value == 1
+ return record
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getContentValues(record: ConfigParaRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.ConfigPara.id.toString(), INDEX)
+ values.put(BeanPropEnum.ConfigPara.mode.toString(), record.mode)
+ values.put(BeanPropEnum.ConfigPara.tenantid.toString(), record.tenantId)
+ values.put(BeanPropEnum.ConfigPara.devphyid.toString(), record.devphyid)
+ values.put(BeanPropEnum.ConfigPara.epayIP.toString(), record.epayIP)
+ values.put(BeanPropEnum.ConfigPara.epayPort.toString(), record.epayPort)
+ values.put(BeanPropEnum.ConfigPara.epayUri.toString(), record.epayUri)
+ values.put(BeanPropEnum.ConfigPara.managePwd.toString(), record.shopPwd)
+ if (record.initOK) {
+ values.put(BeanPropEnum.ConfigPara.initOK.toString(), 1)
+ } else {
+ values.put(BeanPropEnum.ConfigPara.initOK.toString(), 0)
+ }
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/ControlParaDao.kt b/app/src/main/java/com/supwisdom/db/ControlParaDao.kt
index d683d9c..6e92af4 100644
--- a/app/src/main/java/com/supwisdom/db/ControlParaDao.kt
+++ b/app/src/main/java/com/supwisdom/db/ControlParaDao.kt
@@ -1,118 +1,120 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.ControlParaRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class ControlParaDao constructor(context: Context) {
- private val dbHelper = DBParaHelper.getInstance(context)
- private val TABLE = DBParaHelper.TABLE_NAME_CONTROLPARA
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun replace(record: ControlParaRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun replace(paraname: String, paraval: String): Boolean {
- val db = dbHelper.readableDatabase
- val values = ContentValues()
- values.put(BeanPropEnum.ControlPara.paraname.toString(), paraname)
- values.put(BeanPropEnum.ControlPara.paraval.toString(), paraval)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun update(record: ControlParaRecord): Boolean {
- val db = dbHelper.writableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.update(
- TABLE,
- values,
- BeanPropEnum.ControlPara.paraname.toString() + "=?",
- arrayOf(record.paraname)
- ) > 0
- ) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun get(paraname: String): ControlParaRecord? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- try {
- cursor = db.query(
- TABLE, null, BeanPropEnum.ControlPara.paraname.toString() + "=?",
- arrayOf(paraname), null, null, null
- )
- if (cursor != null && cursor.moveToNext()) {
- return getRecord(cursor)
- }
- } finally {
- cursor?.close()
- }
- return null
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): ControlParaRecord {
- val record = ControlParaRecord()
- record.paraname = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ControlPara.paraname.toString()))
- record.paraval = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ControlPara.paraval.toString()))
- return record
- }
-
- private fun getContentValues(record: ControlParaRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.ControlPara.paraname.toString(), record.paraname)
- values.put(BeanPropEnum.ControlPara.paraval.toString(), record.paraval)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.ControlParaRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class ControlParaDao constructor(context: Context) {
+ private val dbHelper = DBParaHelper.getInstance(context)
+ private val TABLE = DBParaHelper.TABLE_NAME_CONTROLPARA
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun replace(record: ControlParaRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun replace(paraname: String, paraval: String): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = ContentValues()
+ values.put(BeanPropEnum.ControlPara.paraname.toString(), paraname)
+ values.put(BeanPropEnum.ControlPara.paraval.toString(), paraval)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun update(record: ControlParaRecord): Boolean {
+ val db = dbHelper.writableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.update(
+ TABLE,
+ values,
+ BeanPropEnum.ControlPara.paraname.toString() + "=?",
+ arrayOf(record.paraname)
+ ) > 0
+ ) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun get(paraname: String): ControlParaRecord? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ try {
+ cursor = db.query(
+ TABLE, null, BeanPropEnum.ControlPara.paraname.toString() + "=?",
+ arrayOf(paraname), null, null, null
+ )
+ if (cursor != null && cursor.moveToNext()) {
+ return getRecord(cursor)
+ }
+ } finally {
+ cursor?.close()
+ }
+ return null
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): ControlParaRecord {
+ val record = ControlParaRecord()
+ record.paraname = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ControlPara.paraname.toString()))
+ record.paraval = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ControlPara.paraval.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: ControlParaRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.ControlPara.paraname.toString(), record.paraname)
+ values.put(BeanPropEnum.ControlPara.paraval.toString(), record.paraval)
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/DBLocalHelper.kt b/app/src/main/java/com/supwisdom/db/DBLocalHelper.kt
index 6b11ddf..39dedd6 100644
--- a/app/src/main/java/com/supwisdom/db/DBLocalHelper.kt
+++ b/app/src/main/java/com/supwisdom/db/DBLocalHelper.kt
@@ -1,67 +1,60 @@
-package com.supwisdom.db
-
-import android.content.Context
-import android.database.sqlite.SQLiteDatabase
-import android.database.sqlite.SQLiteOpenHelper
-import java.util.concurrent.locks.Lock
-import java.util.concurrent.locks.ReentrantLock
-
-/**
- ** create by zzq on 2019/7/31
- ** @desc 本地配置文件
- **/
-class DBLocalHelper private constructor(context: Context) :
- SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
- companion object {
- private val DB_NAME = "db_local_config"
- private val VERSION = 2
- private var instance: DBLocalHelper? = null
-
- const val TABLE_NAME_CONFIGPARA = "tb_configpara"
-
- fun getInstance(context: Context): DBLocalHelper {
- if (null == instance) {
- synchronized(DBLocalHelper::class.java) {
- if (null == instance) {
- instance = DBLocalHelper(context)
- }
- }
- }
- return instance!!
- }
- }
-
- /**
- * SQL for create table
- */
- private val CREATE_TABLE_NAME_CONFIGPARA = ("create table IF NOT EXISTS "
- + TABLE_NAME_CONFIGPARA + " ( "
- + BeanPropEnum.ConfigPara.id + " long primary key, "
- + BeanPropEnum.ConfigPara.mode + " integer, "
- + BeanPropEnum.ConfigPara.tenantid + " varchar(64), "
- + BeanPropEnum.ConfigPara.devphyid + " varchar(8), "
- + BeanPropEnum.ConfigPara.psamno + " varchar(12), "
- + BeanPropEnum.ConfigPara.epayIP + " varchar(128), "
- + BeanPropEnum.ConfigPara.epayPort + " integer, "
- + BeanPropEnum.ConfigPara.epayUri + " varchar(128), "
- + BeanPropEnum.ConfigPara.managePwd + " varchar(6),"
- + BeanPropEnum.ConfigPara.initOK + " integer ) ")
- private val DROP_TABLE_NAME_CONFIGPARA = "DROP TABLE IF EXISTS $TABLE_NAME_CONFIGPARA"
-
- private val lock = ReentrantLock()
- fun getLock(): Lock {
- return lock
- }
-
- override fun onCreate(db: SQLiteDatabase) {
- db.execSQL(CREATE_TABLE_NAME_CONFIGPARA)
- }
-
- override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
- if (oldVersion < newVersion) {
- if (2 <= newVersion && oldVersion < 2) {
- db.execSQL("alter table $TABLE_NAME_CONFIGPARA add column ${BeanPropEnum.ConfigPara.tenantid} varchar(64)")
- }
- }
- }
+package com.supwisdom.db
+
+import android.content.Context
+import android.database.sqlite.SQLiteDatabase
+import android.database.sqlite.SQLiteOpenHelper
+
+/**
+ ** create by zzq on 2019/7/31
+ ** @desc 本地配置文件
+ **/
+class DBLocalHelper private constructor(context: Context) :
+ SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
+ companion object {
+ private val DB_NAME = "db_local_config"
+ private val VERSION = 2
+ private var instance: DBLocalHelper? = null
+
+ const val TABLE_NAME_CONFIGPARA = "tb_configpara"
+
+ fun getInstance(context: Context): DBLocalHelper {
+ if (null == instance) {
+ synchronized(DBLocalHelper::class.java) {
+ if (null == instance) {
+ instance = DBLocalHelper(context)
+ }
+ }
+ }
+ return instance!!
+ }
+ }
+
+ /**
+ * SQL for create table
+ */
+ private val CREATE_TABLE_NAME_CONFIGPARA = ("create table IF NOT EXISTS "
+ + TABLE_NAME_CONFIGPARA + " ( "
+ + BeanPropEnum.ConfigPara.id + " long primary key, "
+ + BeanPropEnum.ConfigPara.mode + " integer, "
+ + BeanPropEnum.ConfigPara.tenantid + " varchar(64), "
+ + BeanPropEnum.ConfigPara.devphyid + " varchar(8), "
+ + BeanPropEnum.ConfigPara.psamno + " varchar(12), "
+ + BeanPropEnum.ConfigPara.epayIP + " varchar(128), "
+ + BeanPropEnum.ConfigPara.epayPort + " integer, "
+ + BeanPropEnum.ConfigPara.epayUri + " varchar(128), "
+ + BeanPropEnum.ConfigPara.managePwd + " varchar(6),"
+ + BeanPropEnum.ConfigPara.initOK + " integer ) ")
+ private val DROP_TABLE_NAME_CONFIGPARA = "DROP TABLE IF EXISTS $TABLE_NAME_CONFIGPARA"
+
+ override fun onCreate(db: SQLiteDatabase) {
+ db.execSQL(CREATE_TABLE_NAME_CONFIGPARA)
+ }
+
+ override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
+ if (oldVersion < newVersion) {
+ if (2 <= newVersion && oldVersion < 2) {
+ db.execSQL("alter table $TABLE_NAME_CONFIGPARA add column ${BeanPropEnum.ConfigPara.tenantid} varchar(64)")
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/DBParaHelper.kt b/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
index 8a0f51d..0743d76 100644
--- a/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
+++ b/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
@@ -1,119 +1,119 @@
-package com.supwisdom.db
-
-import android.content.Context
-import android.database.sqlite.SQLiteDatabase
-import android.database.sqlite.SQLiteOpenHelper
-import java.util.concurrent.locks.Lock
-import java.util.concurrent.locks.ReentrantLock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class DBParaHelper private constructor(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
- companion object {
- private val DB_NAME = "db_para"
- private val VERSION = 2
-
- val TABLE_NAME_SYSPARA = "tb_syspara"
- val TABLE_NAME_DYNAMICPARA = "tb_dynamicpara"
- val TABLE_NAME_CONTROLPARA = "tb_controlpara"
- val TABLE_NAME_WHITELIST = "tb_whitelist"
- val TABLE_NAME_HOTKEY = "tb_hotkey"
- val TABLE_NAME_PERIOD_FIX = "tb_period_fix"
-
- private var instance: DBParaHelper? = null
- fun getInstance(context: Context): DBParaHelper {
- if (null == instance) {
- synchronized(DBParaHelper::class.java) {
- if (null == instance) {
- instance = DBParaHelper(context)
- }
- }
- }
- return instance!!
- }
- }
-
-
- /**
- * SQL for create table
- */
- private val CREATE_TABLE_NAME_PERIOD_FIX = ("create table IF NOT EXISTS "
- + TABLE_NAME_PERIOD_FIX + " ( "
- + BeanPropEnum.PeriodFixPay.id + " integer primary key autoincrement,"
- + BeanPropEnum.PeriodFixPay.begintime + " varchar(4),"
- + BeanPropEnum.PeriodFixPay.endtime + " varchar(4),"
- + BeanPropEnum.PeriodFixPay.amount + " integer )")
- private val CREATE_TABLE_NAME_HOTKEY = ("create table IF NOT EXISTS "
- + TABLE_NAME_HOTKEY + " ( "
- + BeanPropEnum.HotkeyPay.key + " long primary key,"
- + BeanPropEnum.HotkeyPay.amount + " integer)")
- private val CREATE_TABLE_NAME_WHITELIST = ("create table IF NOT EXISTS "
- + TABLE_NAME_WHITELIST + " ( "
- + BeanPropEnum.WhiteList.cardphyid + " varchar(32),"
- + BeanPropEnum.WhiteList.cardno + " varchar(32),"
- + BeanPropEnum.WhiteList.status + " varchar(16),"
- + "primary key ("
- + BeanPropEnum.WhiteList.cardphyid + ","
- + BeanPropEnum.WhiteList.cardno + ") )")
-
- private val CREATE_TABLE_NAME_CONTROLPARA = ("create table IF NOT EXISTS "
- + TABLE_NAME_CONTROLPARA + " ( "
- + BeanPropEnum.ControlPara.paraname + " varchar(64) primary key,"
- + BeanPropEnum.ControlPara.paraval + " varchar(64) )")
- private val CREATE_TABLE_NAME_DYNAMICPARA = ("create table IF NOT EXISTS "
- + TABLE_NAME_DYNAMICPARA + " ( "
- + BeanPropEnum.DynamicPara.id + " long primary key, "
- + BeanPropEnum.DynamicPara.appid + " varchar(16), "
- + BeanPropEnum.DynamicPara.appsecret + " varchar(128), "
- + BeanPropEnum.DynamicPara.deviceid + " integer, "
- + BeanPropEnum.DynamicPara.merchaccno + " integer, "
- + BeanPropEnum.DynamicPara.shopname + " varchar(32), "
- + BeanPropEnum.DynamicPara.onlineseqno + " integer, "
- + BeanPropEnum.DynamicPara.offlineseqno + " integer, "
- + BeanPropEnum.DynamicPara.paraverno + " integer, "
- + BeanPropEnum.DynamicPara.paragroupid + " integer, "
- + BeanPropEnum.DynamicPara.whitelistid + " integer, "
- + BeanPropEnum.DynamicPara.cardverno + " varchar(32),"
- + BeanPropEnum.DynamicPara.jwt + " varchar(254),"
- + BeanPropEnum.DynamicPara.jwtexpire + " varchar(16),"
- + BeanPropEnum.DynamicPara.token + " varchar(32) )")
- private val DROP_TABLE_NAME_DYNAMICPARA = "DROP TABLE IF EXISTS $TABLE_NAME_DYNAMICPARA"
- private val CREATE_TABLE_NAME_SYSPARA = ("create table IF NOT EXISTS "
- + TABLE_NAME_SYSPARA + " ( "
- + BeanPropEnum.Syspara.id + " long primary key, "
- + BeanPropEnum.Syspara.returnFlag + " integer, "
- + BeanPropEnum.Syspara.heatBeat + " integer, "
- + BeanPropEnum.Syspara.offlineEnable + " integer, "
- + BeanPropEnum.Syspara.maxOfflineDays + " integer, "
- + BeanPropEnum.Syspara.maxDayOfflineAmt + " integer, "
- + BeanPropEnum.Syspara.mngpasswd + " char(6), "
- + BeanPropEnum.Syspara.fixpayGap + " integer, "
- + BeanPropEnum.Syspara.consumeShowtime + " integer, "
- + BeanPropEnum.Syspara.consumeFailShowtime + " integer, "
- + BeanPropEnum.Syspara.commTime + " integer )")
- private val DROP_TABLE_NAME_SYSPARA = "DROP TABLE IF EXISTS $TABLE_NAME_SYSPARA"
-
- private val lock = ReentrantLock()
- fun getLock(): Lock {
- return lock
- }
-
- override fun onCreate(db: SQLiteDatabase) {
- db.execSQL(CREATE_TABLE_NAME_SYSPARA)
- db.execSQL(CREATE_TABLE_NAME_DYNAMICPARA)
- db.execSQL(CREATE_TABLE_NAME_CONTROLPARA)
- db.execSQL(CREATE_TABLE_NAME_WHITELIST)
- db.execSQL(CREATE_TABLE_NAME_HOTKEY)
- db.execSQL(CREATE_TABLE_NAME_PERIOD_FIX)
- }
-
- override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
- if (oldVersion < newVersion) {
- if (oldVersion < 2 && newVersion >= 2) {
- db.execSQL(CREATE_TABLE_NAME_PERIOD_FIX)
- }
- }
- }
+package com.supwisdom.db
+
+import android.content.Context
+import android.database.sqlite.SQLiteDatabase
+import android.database.sqlite.SQLiteOpenHelper
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class DBParaHelper private constructor(context: Context) :
+ SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
+ companion object {
+ private val DB_NAME = "db_para"
+ private val VERSION = 3
+
+ val TABLE_NAME_SYSPARA = "tb_syspara"
+ val TABLE_NAME_DYNAMICPARA = "tb_dynamicpara"
+ val TABLE_NAME_CONTROLPARA = "tb_controlpara"
+ val TABLE_NAME_WHITELIST = "tb_whitelist"
+ val TABLE_NAME_HOTKEY = "tb_hotkey"
+ val TABLE_NAME_PERIOD_FIX = "tb_period_fix"
+
+ private var instance: DBParaHelper? = null
+ fun getInstance(context: Context): DBParaHelper {
+ if (null == instance) {
+ synchronized(DBParaHelper::class.java) {
+ if (null == instance) {
+ instance = DBParaHelper(context)
+ }
+ }
+ }
+ return instance!!
+ }
+ }
+
+
+ /**
+ * SQL for create table
+ */
+ private val CREATE_TABLE_NAME_PERIOD_FIX = ("create table IF NOT EXISTS "
+ + TABLE_NAME_PERIOD_FIX + " ( "
+ + BeanPropEnum.PeriodFixPay.id + " integer primary key autoincrement,"
+ + BeanPropEnum.PeriodFixPay.begintime + " varchar(4) default 0,"
+ + BeanPropEnum.PeriodFixPay.endtime + " varchar(4) default 0,"
+ + BeanPropEnum.PeriodFixPay.amount + " integer default 0 )")
+ private val CREATE_TABLE_NAME_HOTKEY = ("create table IF NOT EXISTS "
+ + TABLE_NAME_HOTKEY + " ( "
+ + BeanPropEnum.HotkeyPay.key + " long primary key,"
+ + BeanPropEnum.HotkeyPay.amount + " integer)")
+ private val CREATE_TABLE_NAME_WHITELIST = ("create table IF NOT EXISTS "
+ + TABLE_NAME_WHITELIST + " ( "
+ + BeanPropEnum.WhiteList.cardphyid + " varchar(32) default 0,"
+ + BeanPropEnum.WhiteList.cardno + " varchar(32) default 0,"
+ + BeanPropEnum.WhiteList.status + " varchar(16) default 0,"
+ + "primary key ("
+ + BeanPropEnum.WhiteList.cardphyid + ","
+ + BeanPropEnum.WhiteList.cardno + ") )")
+
+ private val CREATE_TABLE_NAME_CONTROLPARA = ("create table IF NOT EXISTS "
+ + TABLE_NAME_CONTROLPARA + " ( "
+ + BeanPropEnum.ControlPara.paraname + " varchar(64) primary key,"
+ + BeanPropEnum.ControlPara.paraval + " varchar(64) default 0)")
+ private val CREATE_TABLE_NAME_DYNAMICPARA = ("create table IF NOT EXISTS "
+ + TABLE_NAME_DYNAMICPARA + " ( "
+ + BeanPropEnum.DynamicPara.id + " long primary key, "
+ + BeanPropEnum.DynamicPara.appid + " varchar(16) default 0, "
+ + BeanPropEnum.DynamicPara.appsecret + " varchar(128) default 0, "
+ + BeanPropEnum.DynamicPara.deviceid + " integer default 0, "
+ + BeanPropEnum.DynamicPara.merchaccno + " integer default 0, "
+ + BeanPropEnum.DynamicPara.shopname + " varchar(32) default 0, "
+ + BeanPropEnum.DynamicPara.onlineseqno + " integer default 0, "
+ + BeanPropEnum.DynamicPara.offlineseqno + " integer default 0, "
+ + BeanPropEnum.DynamicPara.paraverno + " integer default 0, "
+ + BeanPropEnum.DynamicPara.paragroupid + " integer default 0, "
+ + BeanPropEnum.DynamicPara.whitelistid + " integer default 0, "
+ + BeanPropEnum.DynamicPara.cardverno + " varchar(32) default 0,"
+ + BeanPropEnum.DynamicPara.jwt + " varchar(254) default 0,"
+ + BeanPropEnum.DynamicPara.jwtexpire + " varchar(16) default 0,"
+ + BeanPropEnum.DynamicPara.token + " varchar(32) default 0)")
+ private val DROP_TABLE_NAME_DYNAMICPARA = "DROP TABLE IF EXISTS $TABLE_NAME_DYNAMICPARA"
+ private val CREATE_TABLE_NAME_SYSPARA = ("create table IF NOT EXISTS "
+ + TABLE_NAME_SYSPARA + " ( "
+ + BeanPropEnum.Syspara.id + " long primary key, "
+ + BeanPropEnum.Syspara.returnFlag + " integer default 0, "
+ + BeanPropEnum.Syspara.heatBeat + " integer default 0, "
+ + BeanPropEnum.Syspara.offlineEnable + " integer default 0, "
+ + BeanPropEnum.Syspara.maxOfflineDays + " integer default 0,"
+ + BeanPropEnum.Syspara.maxDayOfflineAmt + " integer default 0,"
+ + BeanPropEnum.Syspara.mngpasswd + " varchar(6) default 0, "
+ + BeanPropEnum.Syspara.fixpayGap + " integer default 0,"
+ + BeanPropEnum.Syspara.consumeShowtime + " integer default 0,"
+ + BeanPropEnum.Syspara.synoCode + " integer default 0,"
+ + BeanPropEnum.Syspara.consumeFailShowtime + " integer default 0,"
+ + BeanPropEnum.Syspara.commTime + " integer default 0)")
+ private val DROP_TABLE_NAME_SYSPARA = "DROP TABLE IF EXISTS $TABLE_NAME_SYSPARA"
+
+ override fun onCreate(db: SQLiteDatabase) {
+ db.execSQL(CREATE_TABLE_NAME_SYSPARA)
+ db.execSQL(CREATE_TABLE_NAME_DYNAMICPARA)
+ db.execSQL(CREATE_TABLE_NAME_CONTROLPARA)
+ db.execSQL(CREATE_TABLE_NAME_WHITELIST)
+ db.execSQL(CREATE_TABLE_NAME_HOTKEY)
+ db.execSQL(CREATE_TABLE_NAME_PERIOD_FIX)
+ }
+
+ override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
+ if (oldVersion < newVersion) {
+ if (oldVersion < 2 && newVersion >= 2) {
+ db.execSQL(CREATE_TABLE_NAME_PERIOD_FIX)
+ }
+ if (oldVersion < 3 && newVersion >= 3) {
+ db.execSQL("alter table add column ${BeanPropEnum.Syspara.synoCode} integer default 0")
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt b/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
index 328f06d..e82f9d8 100644
--- a/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
+++ b/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
@@ -1,87 +1,81 @@
-package com.supwisdom.db
-
-import android.content.Context
-import android.database.sqlite.SQLiteDatabase
-import android.database.sqlite.SQLiteOpenHelper
-import java.util.concurrent.locks.Lock
-import java.util.concurrent.locks.ReentrantLock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class DBTransdtlHelper private constructor(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
- companion object {
- private val DB_NAME = "db_transdtl"
- private val VERSION = 1
- private var instance: DBTransdtlHelper? = null
-
- const val TABLE_NAME_DTL_ONLINE = "tb_dtl_online"
- const val TABLE_NAME_DTL_OFFLINE = "tb_dtl_offline"
-
- fun getInstance(context: Context): DBTransdtlHelper {
- if (null == instance) {
- synchronized(DBTransdtlHelper::class.java) {
- if (null == instance) {
- instance = DBTransdtlHelper(context)
- }
- }
- }
- return instance!!
- }
- }
-
- /**
- * SQL for create table
- */
- private val CRAETE_TABLE_NAME_DTL_ONLINE = ("create table IF NOT EXISTS "
- + TABLE_NAME_DTL_ONLINE + " ( "
- + BeanPropEnum.TransdtlOnline.devphyid + " char(8),"
- + BeanPropEnum.TransdtlOnline.transdate + " char(8),"
- + BeanPropEnum.TransdtlOnline.transtime + " char(6),"
- + BeanPropEnum.TransdtlOnline.devseqno + " long primary key,"
- + BeanPropEnum.TransdtlOnline.cardno + " varchar(32),"
- + BeanPropEnum.TransdtlOnline.cardphyid + " varchar(32),"
- + BeanPropEnum.TransdtlOnline.qrcode + " varchar(254),"
- + BeanPropEnum.TransdtlOnline.transtype + " varchar(8),"
- + BeanPropEnum.TransdtlOnline.payamt + " integer,"
- + BeanPropEnum.TransdtlOnline.extraamt + " integer,"
- + BeanPropEnum.TransdtlOnline.managefeetype + " varchar(10),"
- + BeanPropEnum.TransdtlOnline.username + " varchar(32),"
- + BeanPropEnum.TransdtlOnline.billno + " varchar(32),"
- + BeanPropEnum.TransdtlOnline.reversalflag + " varchar(8),"
- + BeanPropEnum.TransdtlOnline.reversalbillno + " varchar(32),"
- + BeanPropEnum.TransdtlOnline.status + " varchar(8),"
- + BeanPropEnum.TransdtlOnline.upflag + " integer )")
- private val CRAETE_TABLE_NAME_DTL_OFFLINE = ("create table IF NOT EXISTS "
- + TABLE_NAME_DTL_OFFLINE + " ( "
- + BeanPropEnum.TransdtlOffline.devphyid + " char(8),"
- + BeanPropEnum.TransdtlOffline.transdate + " char(8),"
- + BeanPropEnum.TransdtlOffline.transtime + " char(6),"
- + BeanPropEnum.TransdtlOffline.devseqno + " long primary key,"
- + BeanPropEnum.TransdtlOffline.cardno + " varchar(32),"
- + BeanPropEnum.TransdtlOffline.cardphyid + " varchar(32),"
- + BeanPropEnum.TransdtlOffline.payamt + " integer,"
- + BeanPropEnum.TransdtlOffline.extraamt + " integer,"
- + BeanPropEnum.TransdtlOffline.reversalflag + " varchar(8),"
- + BeanPropEnum.TransdtlOffline.reversalseqno + " integer,"
- + BeanPropEnum.TransdtlOffline.reversaltransdate + " char(8),"
- + BeanPropEnum.TransdtlOffline.reversaltranstime + " char(6),"
- + BeanPropEnum.TransdtlOffline.status + " varchar(8),"
- + BeanPropEnum.TransdtlOffline.upflag + " integer )")
-
- private val lock = ReentrantLock()
- fun getLock(): Lock {
- return lock
- }
-
- override fun onCreate(db: SQLiteDatabase) {
- db.execSQL(CRAETE_TABLE_NAME_DTL_ONLINE)
- db.execSQL(CRAETE_TABLE_NAME_DTL_OFFLINE)
- }
-
- override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
- if (oldVersion < newVersion) {
- }
- }
+package com.supwisdom.db
+
+import android.content.Context
+import android.database.sqlite.SQLiteDatabase
+import android.database.sqlite.SQLiteOpenHelper
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class DBTransdtlHelper private constructor(context: Context) :
+ SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
+ companion object {
+ private val DB_NAME = "db_transdtl"
+ private val VERSION = 1
+ private var instance: DBTransdtlHelper? = null
+
+ const val TABLE_NAME_DTL_ONLINE = "tb_dtl_online"
+ const val TABLE_NAME_DTL_OFFLINE = "tb_dtl_offline"
+
+ fun getInstance(context: Context): DBTransdtlHelper {
+ if (null == instance) {
+ synchronized(DBTransdtlHelper::class.java) {
+ if (null == instance) {
+ instance = DBTransdtlHelper(context)
+ }
+ }
+ }
+ return instance!!
+ }
+ }
+
+ /**
+ * SQL for create table
+ */
+ private val CRAETE_TABLE_NAME_DTL_ONLINE = ("create table IF NOT EXISTS "
+ + TABLE_NAME_DTL_ONLINE + " ( "
+ + BeanPropEnum.TransdtlOnline.devphyid + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOnline.transdate + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOnline.transtime + " varchar(6) default 0,"
+ + BeanPropEnum.TransdtlOnline.devseqno + " long primary key,"
+ + BeanPropEnum.TransdtlOnline.cardno + " varchar(32) default 0,"
+ + BeanPropEnum.TransdtlOnline.cardphyid + " varchar(32) default 0,"
+ + BeanPropEnum.TransdtlOnline.qrcode + " varchar(254) default 0,"
+ + BeanPropEnum.TransdtlOnline.transtype + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOnline.payamt + " integer default 0,"
+ + BeanPropEnum.TransdtlOnline.extraamt + " integer default 0,"
+ + BeanPropEnum.TransdtlOnline.managefeetype + " varchar(10) default 0,"
+ + BeanPropEnum.TransdtlOnline.username + " varchar(32) default 0,"
+ + BeanPropEnum.TransdtlOnline.billno + " varchar(32) default 0,"
+ + BeanPropEnum.TransdtlOnline.reversalflag + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOnline.reversalbillno + " varchar(32) default 0,"
+ + BeanPropEnum.TransdtlOnline.status + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOnline.upflag + " integer default 0)")
+ private val CRAETE_TABLE_NAME_DTL_OFFLINE = ("create table IF NOT EXISTS "
+ + TABLE_NAME_DTL_OFFLINE + " ( "
+ + BeanPropEnum.TransdtlOffline.devphyid + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOffline.transdate + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOffline.transtime + " varchar(6) default 0,"
+ + BeanPropEnum.TransdtlOffline.devseqno + " long primary key,"
+ + BeanPropEnum.TransdtlOffline.cardno + " varchar(32) default 0,"
+ + BeanPropEnum.TransdtlOffline.cardphyid + " varchar(32) default 0,"
+ + BeanPropEnum.TransdtlOffline.payamt + " integer default 0,"
+ + BeanPropEnum.TransdtlOffline.extraamt + " integer default 0,"
+ + BeanPropEnum.TransdtlOffline.reversalflag + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOffline.reversalseqno + " integer default 0,"
+ + BeanPropEnum.TransdtlOffline.reversaltransdate + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOffline.reversaltranstime + " varchar(6) default 0,"
+ + BeanPropEnum.TransdtlOffline.status + " varchar(8) default 0,"
+ + BeanPropEnum.TransdtlOffline.upflag + " integer default 0)")
+
+ override fun onCreate(db: SQLiteDatabase) {
+ db.execSQL(CRAETE_TABLE_NAME_DTL_ONLINE)
+ db.execSQL(CRAETE_TABLE_NAME_DTL_OFFLINE)
+ }
+
+ override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
+ if (oldVersion < newVersion) {
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/DynamicParaDao.kt b/app/src/main/java/com/supwisdom/db/DynamicParaDao.kt
index a0fc815..077a290 100644
--- a/app/src/main/java/com/supwisdom/db/DynamicParaDao.kt
+++ b/app/src/main/java/com/supwisdom/db/DynamicParaDao.kt
@@ -1,121 +1,143 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.DynamicParaRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class DynamicParaDao constructor(context: Context) {
- private val INDEX = "1" // 主键
- private val dbHelper = DBParaHelper.getInstance(context)
- private val TABLE = DBParaHelper.TABLE_NAME_DYNAMICPARA
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun replace(record: DynamicParaRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun update(record: DynamicParaRecord): Boolean {
- val db = dbHelper.writableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.update(TABLE, values, BeanPropEnum.DynamicPara.id.toString() + "=?", arrayOf(INDEX)) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun get(): DynamicParaRecord? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- try {
- cursor = db.query(
- TABLE, null, BeanPropEnum.DynamicPara.id.toString() + "=?",
- arrayOf(INDEX), null, null, null
- )
- if (cursor != null && cursor.moveToNext()) {
- return getRecord(cursor)
- }
- } finally {
- cursor?.close()
- }
- return null
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): DynamicParaRecord {
- val record = DynamicParaRecord()
- record.appid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.appid.toString()))
- record.appsecret = cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.appsecret.toString()))
- record.deviceid = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.deviceid.toString()))
- record.merchaccno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.merchaccno.toString()))
- record.shopname = cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.shopname.toString()))
- record.onlineseqno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.onlineseqno.toString()))
- record.offlineseqno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.offlineseqno.toString()))
- record.paraverno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.paraverno.toString()))
- record.paragroupid = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.paragroupid.toString()))
- record.whitelistid = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.whitelistid.toString()))
- record.cardverno = cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.cardverno.toString()))
- record.jwt = cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.jwt.toString()))
- record.jwtExpire = cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.jwtexpire.toString()))
- record.token = cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.token.toString()))
- return record
- }
-
- private fun getContentValues(record: DynamicParaRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.DynamicPara.id.toString(), INDEX)
- values.put(BeanPropEnum.DynamicPara.appid.toString(), record.appid)
- values.put(BeanPropEnum.DynamicPara.appsecret.toString(), record.appsecret)
- values.put(BeanPropEnum.DynamicPara.deviceid.toString(), record.deviceid)
- values.put(BeanPropEnum.DynamicPara.merchaccno.toString(), record.merchaccno)
- values.put(BeanPropEnum.DynamicPara.shopname.toString(), record.shopname)
- values.put(BeanPropEnum.DynamicPara.onlineseqno.toString(), record.onlineseqno)
- values.put(BeanPropEnum.DynamicPara.offlineseqno.toString(), record.offlineseqno)
- values.put(BeanPropEnum.DynamicPara.paraverno.toString(), record.paraverno)
- values.put(BeanPropEnum.DynamicPara.paragroupid.toString(), record.paragroupid)
- values.put(BeanPropEnum.DynamicPara.whitelistid.toString(), record.whitelistid)
- values.put(BeanPropEnum.DynamicPara.cardverno.toString(), record.cardverno)
- values.put(BeanPropEnum.DynamicPara.jwt.toString(), record.jwt)
- values.put(BeanPropEnum.DynamicPara.token.toString(), record.token)
- values.put(BeanPropEnum.DynamicPara.jwtexpire.toString(), record.jwtExpire)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.DynamicParaRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class DynamicParaDao constructor(context: Context) {
+ private val INDEX = "1" // 主键
+ private val dbHelper = DBParaHelper.getInstance(context)
+ private val TABLE = DBParaHelper.TABLE_NAME_DYNAMICPARA
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun replace(record: DynamicParaRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun update(record: DynamicParaRecord): Boolean {
+ val db = dbHelper.writableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.update(
+ TABLE,
+ values,
+ BeanPropEnum.DynamicPara.id.toString() + "=?",
+ arrayOf(INDEX)
+ ) > 0
+ ) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun get(): DynamicParaRecord? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ try {
+ cursor = db.query(
+ TABLE, null, BeanPropEnum.DynamicPara.id.toString() + "=?",
+ arrayOf(INDEX), null, null, null
+ )
+ if (cursor != null && cursor.moveToNext()) {
+ return getRecord(cursor)
+ }
+ } finally {
+ cursor?.close()
+ }
+ return null
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): DynamicParaRecord {
+ val record = DynamicParaRecord()
+ record.appid =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.appid.toString()))
+ record.appsecret =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.appsecret.toString()))
+ record.deviceid =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.deviceid.toString()))
+ record.merchaccno =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.merchaccno.toString()))
+ record.shopname =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.shopname.toString()))
+ record.onlineseqno =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.onlineseqno.toString()))
+ record.offlineseqno =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.offlineseqno.toString()))
+ record.paraverno =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.paraverno.toString()))
+ record.paragroupid =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.paragroupid.toString()))
+ record.whitelistid =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.DynamicPara.whitelistid.toString()))
+ record.cardverno =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.cardverno.toString()))
+ record.jwt =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.jwt.toString()))
+ record.jwtExpire =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.jwtexpire.toString()))
+ record.token =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.DynamicPara.token.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: DynamicParaRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.DynamicPara.id.toString(), INDEX)
+ values.put(BeanPropEnum.DynamicPara.appid.toString(), record.appid)
+ values.put(BeanPropEnum.DynamicPara.appsecret.toString(), record.appsecret)
+ values.put(BeanPropEnum.DynamicPara.deviceid.toString(), record.deviceid)
+ values.put(BeanPropEnum.DynamicPara.merchaccno.toString(), record.merchaccno)
+ values.put(BeanPropEnum.DynamicPara.shopname.toString(), record.shopname)
+ values.put(BeanPropEnum.DynamicPara.onlineseqno.toString(), record.onlineseqno)
+ values.put(BeanPropEnum.DynamicPara.offlineseqno.toString(), record.offlineseqno)
+ values.put(BeanPropEnum.DynamicPara.paraverno.toString(), record.paraverno)
+ values.put(BeanPropEnum.DynamicPara.paragroupid.toString(), record.paragroupid)
+ values.put(BeanPropEnum.DynamicPara.whitelistid.toString(), record.whitelistid)
+ values.put(BeanPropEnum.DynamicPara.cardverno.toString(), record.cardverno)
+ values.put(BeanPropEnum.DynamicPara.jwt.toString(), record.jwt)
+ values.put(BeanPropEnum.DynamicPara.token.toString(), record.token)
+ values.put(BeanPropEnum.DynamicPara.jwtexpire.toString(), record.jwtExpire)
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt b/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt
index 3826967..925992d 100644
--- a/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt
+++ b/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt
@@ -1,98 +1,101 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.HotKeyPayRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/9/4
- ** @desc
- **/
-class HotkeyPayDao constructor(context: Context) {
- private val dbHelper = DBParaHelper.getInstance(context)
- private val TABLE = DBParaHelper.TABLE_NAME_HOTKEY
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun replace(record: HotKeyPayRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun save(list: List<HotKeyPayRecord>): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- list.forEach {
- val values = getContentValues(it)
- if (db.insert(TABLE, null, values) <= 0) {
- return false
- }
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun get(): List<HotKeyPayRecord>? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- try {
- cursor = db.query(TABLE, null, null, null, null, null, null)
- val list = ArrayList<HotKeyPayRecord>()
- while (cursor != null && cursor.moveToNext()) {
- list.add(getRecord(cursor))
- }
- return list
- } finally {
- cursor?.close()
- }
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): HotKeyPayRecord {
- val record = HotKeyPayRecord()
- record.key = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.key.toString()))
- record.amount = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.amount.toString()))
- return record
- }
-
- private fun getContentValues(record: HotKeyPayRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.HotkeyPay.key.toString(), record.key)
- values.put(BeanPropEnum.HotkeyPay.amount.toString(), record.amount)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.HotKeyPayRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/9/4
+ ** @desc
+ **/
+class HotkeyPayDao constructor(context: Context) {
+ private val dbHelper = DBParaHelper.getInstance(context)
+ private val TABLE = DBParaHelper.TABLE_NAME_HOTKEY
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun replace(record: HotKeyPayRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun save(list: List<HotKeyPayRecord>): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ list.forEach {
+ val values = getContentValues(it)
+ if (db.insert(TABLE, null, values) <= 0) {
+ return false
+ }
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun get(): List<HotKeyPayRecord>? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ try {
+ cursor = db.query(TABLE, null, null, null, null, null, null)
+ val list = ArrayList<HotKeyPayRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): HotKeyPayRecord {
+ val record = HotKeyPayRecord()
+ record.key = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.key.toString()))
+ record.amount =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.amount.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: HotKeyPayRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.HotkeyPay.key.toString(), record.key)
+ values.put(BeanPropEnum.HotkeyPay.amount.toString(), record.amount)
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/PeriodFixPayDao.kt b/app/src/main/java/com/supwisdom/db/PeriodFixPayDao.kt
index dce63c0..ab34216 100644
--- a/app/src/main/java/com/supwisdom/db/PeriodFixPayDao.kt
+++ b/app/src/main/java/com/supwisdom/db/PeriodFixPayDao.kt
@@ -1,100 +1,104 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.PeriodFixPayRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/11/20
- ** @desc
- **/
-class PeriodFixPayDao constructor(context: Context) {
- private val dbHelper = DBParaHelper.getInstance(context)
- private val TABLE = DBParaHelper.TABLE_NAME_PERIOD_FIX
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun replace(record: PeriodFixPayRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun save(list: List<PeriodFixPayRecord>): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- list.forEach {
- val values = getContentValues(it)
- if (db.insert(TABLE, null, values) <= 0) {
- return false
- }
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun get(): List<PeriodFixPayRecord>? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- try {
- cursor = db.query(TABLE, null, null, null, null, null, null)
- val list = ArrayList<PeriodFixPayRecord>()
- while (cursor != null && cursor.moveToNext()) {
- list.add(getRecord(cursor))
- }
- return list
- } finally {
- cursor?.close()
- }
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): PeriodFixPayRecord {
- val record = PeriodFixPayRecord()
- record.beginTime = cursor.getString(cursor.getColumnIndex(BeanPropEnum.PeriodFixPay.begintime.toString()))
- record.endTime = cursor.getString(cursor.getColumnIndex(BeanPropEnum.PeriodFixPay.endtime.toString()))
- record.amount = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.PeriodFixPay.amount.toString()))
- return record
- }
-
- private fun getContentValues(record: PeriodFixPayRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.PeriodFixPay.begintime.toString(), record.beginTime)
- values.put(BeanPropEnum.PeriodFixPay.endtime.toString(), record.endTime)
- values.put(BeanPropEnum.PeriodFixPay.amount.toString(), record.amount)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.PeriodFixPayRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/11/20
+ ** @desc
+ **/
+class PeriodFixPayDao constructor(context: Context) {
+ private val dbHelper = DBParaHelper.getInstance(context)
+ private val TABLE = DBParaHelper.TABLE_NAME_PERIOD_FIX
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun replace(record: PeriodFixPayRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun save(list: List<PeriodFixPayRecord>): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ list.forEach {
+ val values = getContentValues(it)
+ if (db.insert(TABLE, null, values) <= 0) {
+ return false
+ }
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun get(): List<PeriodFixPayRecord>? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ try {
+ cursor = db.query(TABLE, null, null, null, null, null, null)
+ val list = ArrayList<PeriodFixPayRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): PeriodFixPayRecord {
+ val record = PeriodFixPayRecord()
+ record.beginTime =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.PeriodFixPay.begintime.toString()))
+ record.endTime =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.PeriodFixPay.endtime.toString()))
+ record.amount =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.PeriodFixPay.amount.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: PeriodFixPayRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.PeriodFixPay.begintime.toString(), record.beginTime)
+ values.put(BeanPropEnum.PeriodFixPay.endtime.toString(), record.endTime)
+ values.put(BeanPropEnum.PeriodFixPay.amount.toString(), record.amount)
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/Pos.kt b/app/src/main/java/com/supwisdom/db/Pos.kt
index 9972af0..883f8dc 100644
--- a/app/src/main/java/com/supwisdom/db/Pos.kt
+++ b/app/src/main/java/com/supwisdom/db/Pos.kt
@@ -1,379 +1,379 @@
-package com.supwisdom.db
-
-import android.content.Context
-import com.supwisdom.entity.*
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class Pos constructor(context: Context) {
- private val sdContext = SDContext(context)
- private val configParaDao = ConfigParaDao(sdContext)
- private var cfgRecord: ConfigParaRecord? = null
- private val dynamicParaDao = DynamicParaDao(context)
- private var dyRecord: DynamicParaRecord? = null
- private val sysParaDao = SysParaDao(context)
- private var sysRecord: SysParaRecord? = null
- private val controlParaDao = ControlParaDao(context)
- private val whiteListDao = WhiteListDao(context)
- private val hotkeyPayDao = HotkeyPayDao(context)
- private val periodFixPayDao = PeriodFixPayDao(context)
- private val transdtlOnlineDao = TransdtlOnlineDao(sdContext)
- private val transdtlOfflineDao = TransdtlOfflineDao(sdContext)
- private val transdtlUnionDao = TransdtlUnionDao(sdContext)
- private var onlMaxSeqno = 0
- private var offMaxSeqno = 0
-
- init {
- }
-
- /**
- * 设备参数
- */
- fun replaceConfigPara(record: ConfigParaRecord): Boolean {
- try {
- configParaDao.getLock().lock()
- if (configParaDao.replace(record)) {
- cfgRecord = record
- return true
- }
- } finally {
- configParaDao.getLock().unlock()
- }
- return false
- }
-
- fun getConfigPara(): ConfigParaRecord? {
- if (cfgRecord == null) {
- try {
- configParaDao.getLock().lock()
- cfgRecord = configParaDao.get()
- } finally {
- configParaDao.getLock().unlock()
- }
- }
- return cfgRecord
- }
-
- fun saveHotkeyPay(list: List<HotKeyPayRecord>): Boolean {
- try {
- hotkeyPayDao.getLock().lock()
- return hotkeyPayDao.save(list)
- } finally {
- hotkeyPayDao.getLock().unlock()
- }
- }
-
- fun getHotkeyPay(): List<HotKeyPayRecord>? {
- try {
- hotkeyPayDao.getLock().lock()
- return hotkeyPayDao.get()
- } finally {
- hotkeyPayDao.getLock().unlock()
- }
- }
-
- fun savePeriodFixPay(list: List<PeriodFixPayRecord>): Boolean {
- try {
- periodFixPayDao.getLock().lock()
- return periodFixPayDao.save(list)
- } finally {
- periodFixPayDao.getLock().unlock()
- }
- }
-
- fun getPeriodFixPay(): List<PeriodFixPayRecord>? {
- try {
- periodFixPayDao.getLock().lock()
- return periodFixPayDao.get()
- } finally {
- periodFixPayDao.getLock().unlock()
- }
- }
-
- fun replaceControlPara(record: ControlParaRecord): Boolean {
- try {
- controlParaDao.getLock().lock()
- return controlParaDao.replace(record)
- } finally {
- controlParaDao.getLock().unlock()
- }
- }
-
- fun replaceControlPara(paraname: String, paraval: String): Boolean {
- try {
- controlParaDao.getLock().lock()
- return controlParaDao.replace(paraname, paraval)
- } finally {
- controlParaDao.getLock().unlock()
- }
- }
-
- fun getControlPara(paraname: String): ControlParaRecord? {
- try {
- controlParaDao.getLock().lock()
- return controlParaDao.get(paraname)
- } finally {
- controlParaDao.getLock().unlock()
- }
- }
-
- fun replaceDynamicPara(record: DynamicParaRecord): Boolean {
- try {
- dynamicParaDao.getLock().lock()
- if (dynamicParaDao.replace(record)) {
- dyRecord = record
- return true
- }
- } finally {
- dynamicParaDao.getLock().unlock()
- }
- return false
- }
-
- fun getDynamicPara(): DynamicParaRecord? {
- if (dyRecord == null) {
- try {
- dynamicParaDao.getLock().lock()
- dyRecord = dynamicParaDao.get()
- } finally {
- dynamicParaDao.getLock().unlock()
- }
- }
- return dyRecord
- }
-
- fun replaceSysPara(record: SysParaRecord): Boolean {
- try {
- sysParaDao.getLock().lock()
- if (sysParaDao.replace(record)) {
- sysRecord = record
- return true
- }
- } finally {
- sysParaDao.getLock().unlock()
- }
- return false
- }
-
- fun getSysPara(): SysParaRecord? {
- if (sysRecord == null) {
- try {
- sysParaDao.getLock().lock()
- sysRecord = sysParaDao.get()
- } finally {
- sysParaDao.getLock().unlock()
- }
- }
- return sysRecord
- }
-
- fun saveWhiteList(list: List<WhiteListRecord>): Boolean {
- try {
- whiteListDao.getLock().lock()
- return whiteListDao.replace(list)
- } finally {
- whiteListDao.getLock().unlock()
- }
- }
-
- fun getWhiteList(cardphyid: String, cardno: String): WhiteListRecord? {
- try {
- whiteListDao.getLock().lock()
- return whiteListDao.get(cardphyid, cardno)
- } finally {
- whiteListDao.getLock().unlock()
- }
- }
-
- fun clearWhiteList(): Boolean {
- try {
- whiteListDao.getLock().lock()
- return whiteListDao.clear()
- } finally {
- whiteListDao.getLock().unlock()
- }
- }
-
- fun getTransdtlOnlineMaxSeqno(): Int {
- if (onlMaxSeqno == 0) {
- try {
- transdtlOnlineDao.getLock().lock()
- onlMaxSeqno = transdtlOnlineDao.getMaxSeqno()
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- }
- return onlMaxSeqno
- }
-
- fun getTransdtlOnlineLast(): TransdtlOnlineRecord? {
- try {
- transdtlOnlineDao.getLock().lock()
- return transdtlOnlineDao.getLast()
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- }
-
- fun getTransdtlOnline(): List<TransdtlOnlineRecord> {
- try {
- transdtlOnlineDao.getLock().lock()
- return transdtlOnlineDao.getAll()
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- }
-
- fun getTransdtlOnlineUnconfirm(): List<TransdtlOnlineRecord> {
- try {
- transdtlOnlineDao.getLock().lock()
- return transdtlOnlineDao.getUnconfirm()
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- }
-
- fun getTransdtlUnconfirmNum(): Int {
- var num = 0
- try {
- transdtlOnlineDao.getLock().lock()
- num += transdtlOnlineDao.getUnconfirmNum()
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- try {
- transdtlOfflineDao.getLock().lock()
- num += transdtlOfflineDao.getUnconfirmNum()
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- return num
- }
-
- fun saveTransdtlOnline(record: TransdtlOnlineRecord): Boolean {
- try {
- transdtlOnlineDao.getLock().lock()
- if (transdtlOnlineDao.save(record)) {
- onlMaxSeqno = record.devseqno
- return true
- }
- return false
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- }
-
- fun updateTransdtlOnline(record: TransdtlOnlineRecord): Boolean {
- try {
- transdtlOnlineDao.getLock().lock()
- return transdtlOnlineDao.update(record)
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- }
-
- fun clearTransdtlOnline(date: String): Boolean {
- try {
- transdtlOnlineDao.getLock().lock()
- return transdtlOnlineDao.clear(date)
- } finally {
- transdtlOnlineDao.getLock().unlock()
- }
- }
-
- fun getTransdtlOfflineMaxSeqno(): Int {
- if (offMaxSeqno == 0) {
- try {
- transdtlOfflineDao.getLock().lock()
- offMaxSeqno = transdtlOfflineDao.getMaxSeqno()
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
- return offMaxSeqno
- }
-
- fun getTransdtlOfflineUnconfirm(): List<TransdtlOfflineRecord> {
- try {
- transdtlOfflineDao.getLock().lock()
- return transdtlOfflineDao.getUnconfirm()
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
-
- fun getTransdtlOffline(): List<TransdtlOfflineRecord> {
- try {
- transdtlOfflineDao.getLock().lock()
- return transdtlOfflineDao.getAll()
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
-
- fun getTransdtlOfflineAmt(date: String, cardno: String, cardphyid: String): Int {
- try {
- transdtlOfflineDao.getLock().lock()
- return transdtlOfflineDao.getOfflineAmt(date, cardno, cardphyid)
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
-
- fun getTransdtlOfflineLast(): TransdtlOfflineRecord? {
- try {
- transdtlOfflineDao.getLock().lock()
- return transdtlOfflineDao.getLast()
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
-
- fun saveTransdtlOffline(record: TransdtlOfflineRecord): Boolean {
- try {
- transdtlOfflineDao.getLock().lock()
- if (transdtlOfflineDao.save(record)) {
- offMaxSeqno = record.devseqno
- return true
- }
- return false
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
-
- fun updateTransdtlOffline(record: TransdtlOfflineRecord): Boolean {
- try {
- transdtlOfflineDao.getLock().lock()
- return transdtlOfflineDao.update(record)
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
-
- fun clearTransdtlOffline(date: String): Boolean {
- try {
- transdtlOfflineDao.getLock().lock()
- return transdtlOfflineDao.clear(date)
- } finally {
- transdtlOfflineDao.getLock().unlock()
- }
- }
-
- /**
- * @param date yyyyMMdd
- * @param offset 流水偏移量
- * @param flag 0--全部流水 1--成功流水 2--失败流水
- * @param num 查询数量
- */
- fun getTransdtlUnion(date: String, offset: Int, flag: Int, num: Int): List<TransdtlUnionRecord> {
- try {
- transdtlUnionDao.getLock().lock()
- return transdtlUnionDao.get(date, offset, flag, num)
- } finally {
- transdtlUnionDao.getLock().unlock()
- }
- }
+package com.supwisdom.db
+
+import android.content.Context
+import com.supwisdom.entity.*
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class Pos constructor(context: Context) {
+ private val sdContext = SDContext(context)
+ private val configParaDao = ConfigParaDao(sdContext)
+ private var cfgRecord: ConfigParaRecord? = null
+ private val dynamicParaDao = DynamicParaDao(context)
+ private var dyRecord: DynamicParaRecord? = null
+ private val sysParaDao = SysParaDao(context)
+ private var sysRecord: SysParaRecord? = null
+ private val controlParaDao = ControlParaDao(context)
+ private val whiteListDao = WhiteListDao(context)
+ private val hotkeyPayDao = HotkeyPayDao(context)
+ private val periodFixPayDao = PeriodFixPayDao(context)
+ private val transdtlOnlineDao = TransdtlOnlineDao(sdContext)
+ private val transdtlOfflineDao = TransdtlOfflineDao(sdContext)
+ private val transdtlUnionDao = TransdtlUnionDao(sdContext)
+ private var onlMaxSeqno = 0
+ private var offMaxSeqno = 0
+
+ init {
+ }
+
+ /**
+ * 设备参数
+ */
+ fun replaceConfigPara(record: ConfigParaRecord): Boolean {
+ try {
+ configParaDao.getLock().lock()
+ if (configParaDao.replace(record)) {
+ cfgRecord = record
+ return true
+ }
+ } finally {
+ configParaDao.getLock().unlock()
+ }
+ return false
+ }
+
+ fun getConfigPara(): ConfigParaRecord? {
+ if (cfgRecord == null) {
+ try {
+ configParaDao.getLock().lock()
+ cfgRecord = configParaDao.get()
+ } finally {
+ configParaDao.getLock().unlock()
+ }
+ }
+ return cfgRecord
+ }
+
+ fun saveHotkeyPay(list: List<HotKeyPayRecord>): Boolean {
+ try {
+ hotkeyPayDao.getLock().lock()
+ return hotkeyPayDao.save(list)
+ } finally {
+ hotkeyPayDao.getLock().unlock()
+ }
+ }
+
+ fun getHotkeyPay(): List<HotKeyPayRecord>? {
+ try {
+ hotkeyPayDao.getLock().lock()
+ return hotkeyPayDao.get()
+ } finally {
+ hotkeyPayDao.getLock().unlock()
+ }
+ }
+
+ fun savePeriodFixPay(list: List<PeriodFixPayRecord>): Boolean {
+ try {
+ periodFixPayDao.getLock().lock()
+ return periodFixPayDao.save(list)
+ } finally {
+ periodFixPayDao.getLock().unlock()
+ }
+ }
+
+ fun getPeriodFixPay(): List<PeriodFixPayRecord>? {
+ try {
+ periodFixPayDao.getLock().lock()
+ return periodFixPayDao.get()
+ } finally {
+ periodFixPayDao.getLock().unlock()
+ }
+ }
+
+ fun replaceControlPara(record: ControlParaRecord): Boolean {
+ try {
+ controlParaDao.getLock().lock()
+ return controlParaDao.replace(record)
+ } finally {
+ controlParaDao.getLock().unlock()
+ }
+ }
+
+ fun replaceControlPara(paraname: String, paraval: String): Boolean {
+ try {
+ controlParaDao.getLock().lock()
+ return controlParaDao.replace(paraname, paraval)
+ } finally {
+ controlParaDao.getLock().unlock()
+ }
+ }
+
+ fun getControlPara(paraname: String): ControlParaRecord? {
+ try {
+ controlParaDao.getLock().lock()
+ return controlParaDao.get(paraname)
+ } finally {
+ controlParaDao.getLock().unlock()
+ }
+ }
+
+ fun replaceDynamicPara(record: DynamicParaRecord): Boolean {
+ try {
+ dynamicParaDao.getLock().lock()
+ if (dynamicParaDao.replace(record)) {
+ dyRecord = record
+ return true
+ }
+ } finally {
+ dynamicParaDao.getLock().unlock()
+ }
+ return false
+ }
+
+ fun getDynamicPara(): DynamicParaRecord? {
+ if (dyRecord == null) {
+ try {
+ dynamicParaDao.getLock().lock()
+ dyRecord = dynamicParaDao.get()
+ } finally {
+ dynamicParaDao.getLock().unlock()
+ }
+ }
+ return dyRecord
+ }
+
+ fun replaceSysPara(record: SysParaRecord): Boolean {
+ try {
+ sysParaDao.getLock().lock()
+ if (sysParaDao.replace(record)) {
+ sysRecord = record
+ return true
+ }
+ } finally {
+ sysParaDao.getLock().unlock()
+ }
+ return false
+ }
+
+ fun getSysPara(): SysParaRecord? {
+ if (sysRecord == null) {
+ try {
+ sysParaDao.getLock().lock()
+ sysRecord = sysParaDao.get()
+ } finally {
+ sysParaDao.getLock().unlock()
+ }
+ }
+ return sysRecord
+ }
+
+ fun saveWhiteList(list: List<WhiteListRecord>): Boolean {
+ try {
+ whiteListDao.getLock().lock()
+ return whiteListDao.replace(list)
+ } finally {
+ whiteListDao.getLock().unlock()
+ }
+ }
+
+ fun getWhiteList(cardphyid: String, cardno: String): WhiteListRecord? {
+ try {
+ whiteListDao.getLock().lock()
+ return whiteListDao.get(cardphyid, cardno)
+ } finally {
+ whiteListDao.getLock().unlock()
+ }
+ }
+
+ fun clearWhiteList(): Boolean {
+ try {
+ whiteListDao.getLock().lock()
+ return whiteListDao.clear()
+ } finally {
+ whiteListDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlOnlineMaxSeqno(): Int {
+ if (onlMaxSeqno == 0) {
+ try {
+ transdtlOnlineDao.getLock().lock()
+ onlMaxSeqno = transdtlOnlineDao.getMaxSeqno()
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ }
+ return onlMaxSeqno
+ }
+
+ fun getTransdtlOnlineLast(): TransdtlOnlineRecord? {
+ try {
+ transdtlOnlineDao.getLock().lock()
+ return transdtlOnlineDao.getLast()
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlOnline(): List<TransdtlOnlineRecord> {
+ try {
+ transdtlOnlineDao.getLock().lock()
+ return transdtlOnlineDao.getAll()
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlOnlineUnconfirm(): List<TransdtlOnlineRecord> {
+ try {
+ transdtlOnlineDao.getLock().lock()
+ return transdtlOnlineDao.getUnconfirm()
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlUnconfirmNum(): Int {
+ var num = 0
+ try {
+ transdtlOnlineDao.getLock().lock()
+ num += transdtlOnlineDao.getUnconfirmNum()
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ try {
+ transdtlOfflineDao.getLock().lock()
+ num += transdtlOfflineDao.getUnconfirmNum()
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ return num
+ }
+
+ fun saveTransdtlOnline(record: TransdtlOnlineRecord): Boolean {
+ try {
+ transdtlOnlineDao.getLock().lock()
+ if (transdtlOnlineDao.save(record)) {
+ onlMaxSeqno = record.devseqno
+ return true
+ }
+ return false
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ }
+
+ fun updateTransdtlOnline(record: TransdtlOnlineRecord): Boolean {
+ try {
+ transdtlOnlineDao.getLock().lock()
+ return transdtlOnlineDao.update(record)
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ }
+
+ fun clearTransdtlOnline(date: String): Boolean {
+ try {
+ transdtlOnlineDao.getLock().lock()
+ return transdtlOnlineDao.clear(date)
+ } finally {
+ transdtlOnlineDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlOfflineMaxSeqno(): Int {
+ if (offMaxSeqno == 0) {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ offMaxSeqno = transdtlOfflineDao.getMaxSeqno()
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+ return offMaxSeqno
+ }
+
+ fun getTransdtlOfflineUnconfirm(): List<TransdtlOfflineRecord> {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ return transdtlOfflineDao.getUnconfirm()
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlOffline(): List<TransdtlOfflineRecord> {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ return transdtlOfflineDao.getAll()
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlOfflineAmt(date: String, cardno: String, cardphyid: String): Int {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ return transdtlOfflineDao.getOfflineAmt(date, cardno, cardphyid)
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+
+ fun getTransdtlOfflineLast(): TransdtlOfflineRecord? {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ return transdtlOfflineDao.getLast()
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+
+ fun saveTransdtlOffline(record: TransdtlOfflineRecord): Boolean {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ if (transdtlOfflineDao.save(record)) {
+ offMaxSeqno = record.devseqno
+ return true
+ }
+ return false
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+
+ fun updateTransdtlOffline(record: TransdtlOfflineRecord): Boolean {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ return transdtlOfflineDao.update(record)
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+
+ fun clearTransdtlOffline(date: String): Boolean {
+ try {
+ transdtlOfflineDao.getLock().lock()
+ return transdtlOfflineDao.clear(date)
+ } finally {
+ transdtlOfflineDao.getLock().unlock()
+ }
+ }
+
+ /**
+ * @param date yyyyMMdd
+ * @param offset 流水偏移量
+ * @param flag 0--全部流水 1--成功流水 2--失败流水
+ * @param num 查询数量
+ */
+ fun getTransdtlUnion(
+ date: String,
+ offset: Int,
+ flag: Int,
+ num: Int
+ ): List<TransdtlUnionRecord> {
+ return transdtlUnionDao.get(date, offset, flag, num)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/SysParaDao.kt b/app/src/main/java/com/supwisdom/db/SysParaDao.kt
index 50de288..6d34422 100644
--- a/app/src/main/java/com/supwisdom/db/SysParaDao.kt
+++ b/app/src/main/java/com/supwisdom/db/SysParaDao.kt
@@ -1,119 +1,143 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.SysParaRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class SysParaDao constructor(context: Context) {
- private val INDEX = "1" // 主键
- private val dbHelper = DBParaHelper.getInstance(context)
- private val TABLE = DBParaHelper.TABLE_NAME_SYSPARA
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun replace(record: SysParaRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun update(record: SysParaRecord): Boolean {
- val db = dbHelper.writableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.update(TABLE, values, BeanPropEnum.Syspara.id.toString() + "=?", arrayOf(INDEX)) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun get(): SysParaRecord? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- try {
- cursor = db.query(
- TABLE, null, BeanPropEnum.Syspara.id.toString() + "=?",
- arrayOf(INDEX), null, null, null
- )
- if (cursor != null && cursor.moveToNext()) {
- return getRecord(cursor)
- }
- } finally {
- cursor?.close()
- }
- return null
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): SysParaRecord {
- val record = SysParaRecord()
- record.returnFlag = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.returnFlag.toString()))
- record.heatBeat = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.heatBeat.toString()))
- val enable = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.offlineEnable.toString()))
- record.offlineEnable = enable == 1
- record.maxOfflineDays = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.maxOfflineDays.toString()))
- record.maxDayOfflineAmt = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.maxDayOfflineAmt.toString()))
- record.mngPasswd = cursor.getString(cursor.getColumnIndex(BeanPropEnum.Syspara.mngpasswd.toString()))
- record.fixpayGap = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.fixpayGap.toString()))
- record.sucShowtime = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.consumeShowtime.toString()))
- record.failShowtime =
- cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.consumeFailShowtime.toString()))
- record.commTime = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.commTime.toString()))
- return record
- }
-
- private fun getContentValues(record: SysParaRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.Syspara.id.toString(), INDEX)
- values.put(BeanPropEnum.Syspara.returnFlag.toString(), record.returnFlag)
- values.put(BeanPropEnum.Syspara.heatBeat.toString(), record.heatBeat)
- if (record.offlineEnable) {
- values.put(BeanPropEnum.Syspara.offlineEnable.toString(), 1)
- } else {
- values.put(BeanPropEnum.Syspara.offlineEnable.toString(), 0)
- }
- values.put(BeanPropEnum.Syspara.maxOfflineDays.toString(), record.maxOfflineDays)
- values.put(BeanPropEnum.Syspara.maxDayOfflineAmt.toString(), record.maxDayOfflineAmt)
- values.put(BeanPropEnum.Syspara.mngpasswd.toString(), record.mngPasswd)
- values.put(BeanPropEnum.Syspara.fixpayGap.toString(), record.fixpayGap)
- values.put(BeanPropEnum.Syspara.consumeShowtime.toString(), record.sucShowtime)
- values.put(BeanPropEnum.Syspara.consumeFailShowtime.toString(), record.failShowtime)
- values.put(BeanPropEnum.Syspara.commTime.toString(), record.commTime)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.SysParaRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class SysParaDao constructor(context: Context) {
+ private val INDEX = "1" // 主键
+ private val dbHelper = DBParaHelper.getInstance(context)
+ private val TABLE = DBParaHelper.TABLE_NAME_SYSPARA
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun replace(record: SysParaRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun update(record: SysParaRecord): Boolean {
+ val db = dbHelper.writableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.update(
+ TABLE,
+ values,
+ BeanPropEnum.Syspara.id.toString() + "=?",
+ arrayOf(INDEX)
+ ) < 0
+ ) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun get(): SysParaRecord? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ try {
+ cursor = db.query(
+ TABLE, null, BeanPropEnum.Syspara.id.toString() + "=?",
+ arrayOf(INDEX), null, null, null
+ )
+ if (cursor != null && cursor.moveToNext()) {
+ return getRecord(cursor)
+ }
+ } finally {
+ cursor?.close()
+ }
+ return null
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): SysParaRecord {
+ val record = SysParaRecord()
+ record.returnFlag =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.returnFlag.toString()))
+ record.heatBeat =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.heatBeat.toString()))
+ var enable =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.offlineEnable.toString()))
+ record.offlineEnable = enable == 1
+ enable = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.synoCode.toString()))
+ record.synoCode = enable == 1
+ record.maxOfflineDays =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.maxOfflineDays.toString()))
+ record.maxDayOfflineAmt =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.maxDayOfflineAmt.toString()))
+ record.mngPasswd =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.Syspara.mngpasswd.toString()))
+ record.fixpayGap =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.fixpayGap.toString()))
+ record.sucShowtime =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.consumeShowtime.toString()))
+ record.failShowtime =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.consumeFailShowtime.toString()))
+ record.commTime =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.Syspara.commTime.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: SysParaRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.Syspara.id.toString(), INDEX)
+ values.put(BeanPropEnum.Syspara.returnFlag.toString(), record.returnFlag)
+ values.put(BeanPropEnum.Syspara.heatBeat.toString(), record.heatBeat)
+ if (record.offlineEnable) {
+ values.put(BeanPropEnum.Syspara.offlineEnable.toString(), 1)
+ } else {
+ values.put(BeanPropEnum.Syspara.offlineEnable.toString(), 0)
+ }
+ if (record.synoCode) {
+ values.put(BeanPropEnum.Syspara.synoCode.toString(), 1)
+ } else {
+ values.put(BeanPropEnum.Syspara.synoCode.toString(), 0)
+ }
+ values.put(BeanPropEnum.Syspara.maxOfflineDays.toString(), record.maxOfflineDays)
+ values.put(BeanPropEnum.Syspara.maxDayOfflineAmt.toString(), record.maxDayOfflineAmt)
+ values.put(BeanPropEnum.Syspara.mngpasswd.toString(), record.mngPasswd)
+ values.put(BeanPropEnum.Syspara.fixpayGap.toString(), record.fixpayGap)
+ values.put(BeanPropEnum.Syspara.consumeShowtime.toString(), record.sucShowtime)
+ values.put(BeanPropEnum.Syspara.consumeFailShowtime.toString(), record.failShowtime)
+ values.put(BeanPropEnum.Syspara.commTime.toString(), record.commTime)
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/TransdtlOfflineDao.kt b/app/src/main/java/com/supwisdom/db/TransdtlOfflineDao.kt
index 8669aa8..bf3b729 100644
--- a/app/src/main/java/com/supwisdom/db/TransdtlOfflineDao.kt
+++ b/app/src/main/java/com/supwisdom/db/TransdtlOfflineDao.kt
@@ -1,260 +1,282 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.PayStatus
-import com.supwisdom.entity.ReversalFlag
-import com.supwisdom.entity.TransdtlOfflineRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class TransdtlOfflineDao constructor(context: Context) {
- private val dbHelper = DBTransdtlHelper.getInstance(context)
- private val TABLE = DBTransdtlHelper.TABLE_NAME_DTL_OFFLINE
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun save(record: TransdtlOfflineRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun update(record: TransdtlOfflineRecord): Boolean {
- val db = dbHelper.writableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.update(
- TABLE,
- values,
- BeanPropEnum.TransdtlOffline.devseqno.toString() + "=?",
- arrayOf(record.devseqno.toString())
- ) > 0
- ) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun getAll(): List<TransdtlOfflineRecord> {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val orderby = BeanPropEnum.TransdtlOffline.devseqno.toString() + " desc"
- try {
- cursor = db.query(TABLE, null, null, null, null, null, orderby)
- val list = ArrayList<TransdtlOfflineRecord>()
- while (cursor != null && cursor.moveToNext()) {
- list.add(getRecord(cursor))
- }
- return list
- } finally {
- cursor?.close()
- }
- }
-
- fun getOfflineAmt(date: String, cardno: String, cardphyid: String): Int {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- var sql = ("select sum(${BeanPropEnum.TransdtlOffline.payamt}) as sumamt from $TABLE where "
- + BeanPropEnum.TransdtlOffline.transdate.toString() + "='" + date + "' and "
- + BeanPropEnum.TransdtlOffline.cardno.toString() + "='" + cardno + "' and "
- + BeanPropEnum.TransdtlOffline.cardphyid.toString() + "='" + cardphyid + "' and "
- + BeanPropEnum.TransdtlOffline.reversalflag.toString() + "='" + ReversalFlag.NONE.toString() + "' and "
- + BeanPropEnum.TransdtlOffline.status.toString() + "='" + PayStatus.SUC.toString() + "'")
- var sumamt = 0
- try {
- cursor = db.rawQuery(sql, null, null)
- if (cursor != null && cursor.moveToNext()) {
- sumamt = cursor.getInt(cursor.getColumnIndex("sumamt"))
- }
- } finally {
- cursor?.close()
- }
-
- sql = ("select sum(${BeanPropEnum.TransdtlOffline.payamt}) as sumamt from $TABLE where "
- + BeanPropEnum.TransdtlOffline.transdate.toString() + "='" + date + "' and "
- + BeanPropEnum.TransdtlOffline.cardno.toString() + "='" + cardno + "' and "
- + BeanPropEnum.TransdtlOffline.cardphyid.toString() + "='" + cardphyid + "' and "
- + BeanPropEnum.TransdtlOffline.reversalflag.toString() + "<>'" + ReversalFlag.NONE.toString() + "' and "
- + BeanPropEnum.TransdtlOffline.status.toString() + "='" + PayStatus.SUC.toString() + "'")
- try {
- cursor = db.rawQuery(sql, null, null)
- if (cursor != null && cursor.moveToNext()) {
- val reverse = cursor.getInt(cursor.getColumnIndex("sumamt"))
- if (sumamt > reverse) {
- return (sumamt - reverse)
- }
- }
- } finally {
- cursor?.close()
- }
- return 0
- }
-
- fun getUnconfirm(): List<TransdtlOfflineRecord> {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val selection = BeanPropEnum.TransdtlOffline.upflag.toString() + "=?"
- try {
- cursor = db.query(TABLE, null, selection, arrayOf("0"), null, null, null)
- val list = ArrayList<TransdtlOfflineRecord>()
- while (cursor != null && cursor.moveToNext()) {
- list.add(getRecord(cursor))
- }
- return list
- } finally {
- cursor?.close()
- }
- }
-
- fun getMaxSeqno(): Int {
- val db = dbHelper.readableDatabase
- val sql = ("select max(${BeanPropEnum.TransdtlOffline.devseqno}) as seqno from $TABLE")
- var cursor: Cursor? = null
- try {
- cursor = db.rawQuery(sql, null, null)
- if (cursor != null && cursor.moveToNext()) {
- return cursor.getInt(cursor.getColumnIndex("seqno"))
- }
- } finally {
- cursor?.close()
- }
- return 0
- }
-
- fun getUnconfirmNum(): Int {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val sql = ("select COUNT("
- + BeanPropEnum.TransdtlOffline.devseqno
- + ") as num from " + TABLE
- + " where " + BeanPropEnum.TransdtlOffline.upflag + "=0")
- try {
- cursor = db.rawQuery(sql, null)
- if (cursor != null && cursor.moveToNext()) {
- return cursor.getInt(cursor.getColumnIndex("num"))
- }
- } finally {
- cursor?.close()
- }
- return 0
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun getLast(): TransdtlOfflineRecord? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val orderBy = BeanPropEnum.TransdtlOffline.devseqno.toString() + " desc"
- try {
- cursor = db.query(TABLE, null, null, null, null, null, orderBy, "1")
- if (cursor != null && cursor.moveToNext()) {
- return getRecord(cursor)
- }
- return null
- } finally {
- cursor?.close()
- }
- }
-
- fun clear(date: String): Boolean {
- val db = dbHelper.writableDatabase
- val selection =
- BeanPropEnum.TransdtlOffline.upflag.toString() + "=? and " + BeanPropEnum.TransdtlOffline.transdate + "<?"
- try {
- db.beginTransaction()
- if (db.delete(TABLE, selection, arrayOf("1", date)) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): TransdtlOfflineRecord {
- val record = TransdtlOfflineRecord()
- record.devphyid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.devphyid.toString()))
- record.transdate = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.transdate.toString()))
- record.transtime = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.transtime.toString()))
- record.devseqno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.devseqno.toString()))
- record.cardno = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.cardno.toString()))
- record.cardphyid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.cardphyid.toString()))
- record.payamt = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.payamt.toString()))
- record.extraamt = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.extraamt.toString()))
- var flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversalflag.toString()))
- when (flag) {
- ReversalFlag.NONE.toString() -> record.reversalflag = ReversalFlag.NONE
- ReversalFlag.AUTO.toString() -> record.reversalflag = ReversalFlag.AUTO
- ReversalFlag.MANUAL.toString() -> record.reversalflag = ReversalFlag.MANUAL
- else -> record.reversalflag = ReversalFlag.NONE
- }
- record.reversalseqno =
- cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversalseqno.toString()))
- record.reversaltransdate =
- cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversaltransdate.toString()))
- record.reversaltranstime =
- cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversaltranstime.toString()))
- flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.status.toString()))
- when (flag) {
- PayStatus.INIT.toString() -> record.status = PayStatus.INIT
- PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
- PayStatus.SUC.toString() -> record.status = PayStatus.SUC
- else -> record.status = PayStatus.INIT
- }
- record.upflag = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.upflag.toString()))
- return record
- }
-
- private fun getContentValues(record: TransdtlOfflineRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.TransdtlOffline.devphyid.toString(), record.devphyid)
- values.put(BeanPropEnum.TransdtlOffline.transdate.toString(), record.transdate)
- values.put(BeanPropEnum.TransdtlOffline.transtime.toString(), record.transtime)
- values.put(BeanPropEnum.TransdtlOffline.devseqno.toString(), record.devseqno)
- values.put(BeanPropEnum.TransdtlOffline.cardno.toString(), record.cardno)
- values.put(BeanPropEnum.TransdtlOffline.cardphyid.toString(), record.cardphyid)
- values.put(BeanPropEnum.TransdtlOffline.payamt.toString(), record.payamt)
- values.put(BeanPropEnum.TransdtlOffline.extraamt.toString(), record.extraamt)
- values.put(BeanPropEnum.TransdtlOffline.reversalflag.toString(), record.reversalflag.toString())
- values.put(BeanPropEnum.TransdtlOffline.reversalseqno.toString(), record.reversalseqno)
- values.put(BeanPropEnum.TransdtlOffline.reversaltransdate.toString(), record.reversaltransdate)
- values.put(BeanPropEnum.TransdtlOffline.reversaltranstime.toString(), record.reversaltranstime)
- values.put(BeanPropEnum.TransdtlOffline.status.toString(), record.status.toString())
- values.put(BeanPropEnum.TransdtlOffline.upflag.toString(), record.upflag)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.PayStatus
+import com.supwisdom.entity.ReversalFlag
+import com.supwisdom.entity.TransdtlOfflineRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class TransdtlOfflineDao constructor(context: Context) {
+ private val dbHelper = DBTransdtlHelper.getInstance(context)
+ private val TABLE = DBTransdtlHelper.TABLE_NAME_DTL_OFFLINE
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun save(record: TransdtlOfflineRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun update(record: TransdtlOfflineRecord): Boolean {
+ val db = dbHelper.writableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.update(
+ TABLE,
+ values,
+ BeanPropEnum.TransdtlOffline.devseqno.toString() + "=?",
+ arrayOf(record.devseqno.toString())
+ ) > 0
+ ) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun getAll(): List<TransdtlOfflineRecord> {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val orderby = BeanPropEnum.TransdtlOffline.devseqno.toString() + " desc"
+ try {
+ cursor = db.query(TABLE, null, null, null, null, null, orderby)
+ val list = ArrayList<TransdtlOfflineRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun getOfflineAmt(date: String, cardno: String, cardphyid: String): Int {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ var sql = ("select sum(${BeanPropEnum.TransdtlOffline.payamt}) as sumamt from $TABLE where "
+ + BeanPropEnum.TransdtlOffline.transdate.toString() + "='" + date + "' and "
+ + BeanPropEnum.TransdtlOffline.cardno.toString() + "='" + cardno + "' and "
+ + BeanPropEnum.TransdtlOffline.cardphyid.toString() + "='" + cardphyid + "' and "
+ + BeanPropEnum.TransdtlOffline.reversalflag.toString() + "='" + ReversalFlag.NONE.toString() + "' and "
+ + BeanPropEnum.TransdtlOffline.status.toString() + "='" + PayStatus.SUC.toString() + "'")
+ var sumamt = 0
+ try {
+ cursor = db.rawQuery(sql, null, null)
+ if (cursor != null && cursor.moveToNext()) {
+ sumamt = cursor.getInt(cursor.getColumnIndex("sumamt"))
+ }
+ } finally {
+ cursor?.close()
+ }
+
+ sql = ("select sum(${BeanPropEnum.TransdtlOffline.payamt}) as sumamt from $TABLE where "
+ + BeanPropEnum.TransdtlOffline.transdate.toString() + "='" + date + "' and "
+ + BeanPropEnum.TransdtlOffline.cardno.toString() + "='" + cardno + "' and "
+ + BeanPropEnum.TransdtlOffline.cardphyid.toString() + "='" + cardphyid + "' and "
+ + BeanPropEnum.TransdtlOffline.reversalflag.toString() + "<>'" + ReversalFlag.NONE.toString() + "' and "
+ + BeanPropEnum.TransdtlOffline.status.toString() + "='" + PayStatus.SUC.toString() + "'")
+ try {
+ cursor = db.rawQuery(sql, null, null)
+ if (cursor != null && cursor.moveToNext()) {
+ val reverse = cursor.getInt(cursor.getColumnIndex("sumamt"))
+ if (sumamt > reverse) {
+ return (sumamt - reverse)
+ }
+ }
+ } finally {
+ cursor?.close()
+ }
+ return 0
+ }
+
+ fun getUnconfirm(): List<TransdtlOfflineRecord> {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val selection = BeanPropEnum.TransdtlOffline.upflag.toString() + "=?"
+ try {
+ cursor = db.query(TABLE, null, selection, arrayOf("0"), null, null, null)
+ val list = ArrayList<TransdtlOfflineRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun getMaxSeqno(): Int {
+ val db = dbHelper.readableDatabase
+ val sql = ("select max(${BeanPropEnum.TransdtlOffline.devseqno}) as seqno from $TABLE")
+ var cursor: Cursor? = null
+ try {
+ cursor = db.rawQuery(sql, null, null)
+ if (cursor != null && cursor.moveToNext()) {
+ return cursor.getInt(cursor.getColumnIndex("seqno"))
+ }
+ } finally {
+ cursor?.close()
+ }
+ return 0
+ }
+
+ fun getUnconfirmNum(): Int {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val sql = ("select COUNT("
+ + BeanPropEnum.TransdtlOffline.devseqno
+ + ") as num from " + TABLE
+ + " where " + BeanPropEnum.TransdtlOffline.upflag + "=0")
+ try {
+ cursor = db.rawQuery(sql, null)
+ if (cursor != null && cursor.moveToNext()) {
+ return cursor.getInt(cursor.getColumnIndex("num"))
+ }
+ } finally {
+ cursor?.close()
+ }
+ return 0
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun getLast(): TransdtlOfflineRecord? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val orderBy = BeanPropEnum.TransdtlOffline.devseqno.toString() + " desc"
+ try {
+ cursor = db.query(TABLE, null, null, null, null, null, orderBy, "1")
+ if (cursor != null && cursor.moveToNext()) {
+ return getRecord(cursor)
+ }
+ return null
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun clear(date: String): Boolean {
+ val db = dbHelper.writableDatabase
+ val selection =
+ BeanPropEnum.TransdtlOffline.upflag.toString() + "=? and " + BeanPropEnum.TransdtlOffline.transdate + "<?"
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, selection, arrayOf("1", date)) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): TransdtlOfflineRecord {
+ val record = TransdtlOfflineRecord()
+ record.devphyid =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.devphyid.toString()))
+ record.transdate =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.transdate.toString()))
+ record.transtime =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.transtime.toString()))
+ record.devseqno =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.devseqno.toString()))
+ record.cardno =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.cardno.toString()))
+ record.cardphyid =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.cardphyid.toString()))
+ record.payamt =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.payamt.toString()))
+ record.extraamt =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.extraamt.toString()))
+ var flag =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversalflag.toString()))
+ when (flag) {
+ ReversalFlag.NONE.toString() -> record.reversalflag = ReversalFlag.NONE
+ ReversalFlag.AUTO.toString() -> record.reversalflag = ReversalFlag.AUTO
+ ReversalFlag.MANUAL.toString() -> record.reversalflag = ReversalFlag.MANUAL
+ else -> record.reversalflag = ReversalFlag.NONE
+ }
+ record.reversalseqno =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversalseqno.toString()))
+ record.reversaltransdate =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversaltransdate.toString()))
+ record.reversaltranstime =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.reversaltranstime.toString()))
+ flag =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.status.toString()))
+ when (flag) {
+ PayStatus.INIT.toString() -> record.status = PayStatus.INIT
+ PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
+ PayStatus.SUC.toString() -> record.status = PayStatus.SUC
+ else -> record.status = PayStatus.INIT
+ }
+ record.upflag =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOffline.upflag.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: TransdtlOfflineRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.TransdtlOffline.devphyid.toString(), record.devphyid)
+ values.put(BeanPropEnum.TransdtlOffline.transdate.toString(), record.transdate)
+ values.put(BeanPropEnum.TransdtlOffline.transtime.toString(), record.transtime)
+ values.put(BeanPropEnum.TransdtlOffline.devseqno.toString(), record.devseqno)
+ values.put(BeanPropEnum.TransdtlOffline.cardno.toString(), record.cardno)
+ values.put(BeanPropEnum.TransdtlOffline.cardphyid.toString(), record.cardphyid)
+ values.put(BeanPropEnum.TransdtlOffline.payamt.toString(), record.payamt)
+ values.put(BeanPropEnum.TransdtlOffline.extraamt.toString(), record.extraamt)
+ values.put(
+ BeanPropEnum.TransdtlOffline.reversalflag.toString(),
+ record.reversalflag.toString()
+ )
+ values.put(BeanPropEnum.TransdtlOffline.reversalseqno.toString(), record.reversalseqno)
+ values.put(
+ BeanPropEnum.TransdtlOffline.reversaltransdate.toString(),
+ record.reversaltransdate
+ )
+ values.put(
+ BeanPropEnum.TransdtlOffline.reversaltranstime.toString(),
+ record.reversaltranstime
+ )
+ values.put(BeanPropEnum.TransdtlOffline.status.toString(), record.status.toString())
+ values.put(BeanPropEnum.TransdtlOffline.upflag.toString(), record.upflag)
+ return values
+ }
}
\ 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 0a76b2b..f293c0f 100644
--- a/app/src/main/java/com/supwisdom/db/TransdtlOnlineDao.kt
+++ b/app/src/main/java/com/supwisdom/db/TransdtlOnlineDao.kt
@@ -1,226 +1,246 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.PayStatus
-import com.supwisdom.entity.ReversalFlag
-import com.supwisdom.entity.TransdtlOnlineRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-class TransdtlOnlineDao constructor(context: Context) {
- private val dbHelper = DBTransdtlHelper.getInstance(context)
- private val TABLE = DBTransdtlHelper.TABLE_NAME_DTL_ONLINE
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun save(record: TransdtlOnlineRecord): Boolean {
- val db = dbHelper.readableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.replace(TABLE, null, values) > 0) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun update(record: TransdtlOnlineRecord): Boolean {
- val db = dbHelper.writableDatabase
- val values = getContentValues(record)
- try {
- db.beginTransaction()
- if (db.update(
- TABLE,
- values,
- BeanPropEnum.TransdtlOnline.devseqno.toString() + "=?",
- arrayOf(record.devseqno.toString())
- ) > 0
- ) {
- db.setTransactionSuccessful()
- return true
- }
- } finally {
- db.endTransaction()
- }
- return false
- }
-
- fun getAll(): List<TransdtlOnlineRecord> {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val orderby = BeanPropEnum.TransdtlOnline.devseqno.toString() + " desc"
- try {
- cursor = db.query(TABLE, null, null, null, null, null, orderby)
- val list = ArrayList<TransdtlOnlineRecord>()
- while (cursor != null && cursor.moveToNext()) {
- list.add(getRecord(cursor))
- }
- return list
- } finally {
- cursor?.close()
- }
- }
-
- fun getUnconfirm(): List<TransdtlOnlineRecord> {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val selection = BeanPropEnum.TransdtlOnline.upflag.toString() + "=?"
- try {
- cursor = db.query(TABLE, null, selection, arrayOf("0"), null, null, null)
- val list = ArrayList<TransdtlOnlineRecord>()
- while (cursor != null && cursor.moveToNext()) {
- list.add(getRecord(cursor))
- }
- return list
- } finally {
- cursor?.close()
- }
- }
-
- fun getLast(): TransdtlOnlineRecord? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val orderBy = BeanPropEnum.TransdtlOnline.devseqno.toString() + " desc"
- try {
- cursor = db.query(TABLE, null, null, null, null, null, orderBy, "1")
- if (cursor != null && cursor.moveToNext()) {
- return getRecord(cursor)
- }
- return null
- } finally {
- cursor?.close()
- }
- }
-
- fun getUnconfirmNum(): Int {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val sql = ("select COUNT("
- + BeanPropEnum.TransdtlOnline.devseqno
- + ") as num from " + TABLE
- + " where " + BeanPropEnum.TransdtlOnline.upflag + "=0")
- try {
- cursor = db.rawQuery(sql, null)
- if (cursor != null && cursor.moveToNext()) {
- return cursor.getInt(cursor.getColumnIndex("num"))
- }
- } finally {
- cursor?.close()
- }
- return 0
- }
-
- fun getMaxSeqno(): Int {
- val db = dbHelper.readableDatabase
- val sql = ("select max(${BeanPropEnum.TransdtlOnline.devseqno}) as seqno from $TABLE")
- var cursor: Cursor? = null
- try {
- cursor = db.rawQuery(sql, null, null)
- if (cursor != null && cursor.moveToNext()) {
- return cursor.getInt(cursor.getColumnIndex("seqno"))
- }
- } finally {
- cursor?.close()
- }
- return 0
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun clear(date: String): Boolean {
- val db = dbHelper.writableDatabase
- val selection =
- BeanPropEnum.TransdtlOnline.upflag.toString() + "=? and " + BeanPropEnum.TransdtlOnline.transdate + "<?"
- try {
- db.beginTransaction()
- if (db.delete(TABLE, selection, arrayOf("1", date)) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): TransdtlOnlineRecord {
- val record = TransdtlOnlineRecord()
- record.devphyid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.devphyid.toString()))
- record.transdate = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.transdate.toString()))
- record.transtime = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.transtime.toString()))
- record.devseqno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.devseqno.toString()))
- record.cardno = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.cardno.toString()))
- record.cardphyid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.cardphyid.toString()))
- record.qrcode = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.qrcode.toString()))
- record.transtype = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.transtype.toString()))
- record.billno = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.billno.toString()))
- record.managefeetype =
- cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.managefeetype.toString()))
- record.username = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.username.toString()))
- record.payamt = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.payamt.toString()))
- record.extraamt = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.extraamt.toString()))
- var flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.reversalflag.toString()))
- when (flag) {
- ReversalFlag.NONE.toString() -> record.reversalflag = ReversalFlag.NONE
- ReversalFlag.AUTO.toString() -> record.reversalflag = ReversalFlag.AUTO
- ReversalFlag.MANUAL.toString() -> record.reversalflag = ReversalFlag.MANUAL
- else -> record.reversalflag = ReversalFlag.NONE
- }
- record.reversalbillno =
- cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.reversalbillno.toString()))
- flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.status.toString()))
- when (flag) {
- PayStatus.INIT.toString() -> record.status = PayStatus.INIT
- PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
- PayStatus.SUC.toString() -> record.status = PayStatus.SUC
- else -> record.status = PayStatus.INIT
- }
- record.upflag = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.upflag.toString()))
- return record
- }
-
- private fun getContentValues(record: TransdtlOnlineRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.TransdtlOnline.devphyid.toString(), record.devphyid)
- values.put(BeanPropEnum.TransdtlOnline.transdate.toString(), record.transdate)
- values.put(BeanPropEnum.TransdtlOnline.transtime.toString(), record.transtime)
- values.put(BeanPropEnum.TransdtlOnline.devseqno.toString(), record.devseqno)
- values.put(BeanPropEnum.TransdtlOnline.cardno.toString(), record.cardno)
- values.put(BeanPropEnum.TransdtlOnline.cardphyid.toString(), record.cardphyid)
- values.put(BeanPropEnum.TransdtlOnline.qrcode.toString(), record.qrcode)
- values.put(BeanPropEnum.TransdtlOnline.transtype.toString(), record.transtype)
- values.put(BeanPropEnum.TransdtlOnline.payamt.toString(), record.payamt)
- values.put(BeanPropEnum.TransdtlOnline.extraamt.toString(), record.extraamt)
- values.put(BeanPropEnum.TransdtlOnline.billno.toString(), record.billno)
- values.put(BeanPropEnum.TransdtlOnline.managefeetype.toString(), record.managefeetype)
- values.put(BeanPropEnum.TransdtlOnline.username.toString(), record.username)
- values.put(BeanPropEnum.TransdtlOnline.reversalflag.toString(), record.reversalflag.toString())
- values.put(BeanPropEnum.TransdtlOnline.reversalbillno.toString(), record.reversalbillno)
- values.put(BeanPropEnum.TransdtlOnline.status.toString(), record.status.toString())
- values.put(BeanPropEnum.TransdtlOnline.upflag.toString(), record.upflag)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.PayStatus
+import com.supwisdom.entity.ReversalFlag
+import com.supwisdom.entity.TransdtlOnlineRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+class TransdtlOnlineDao constructor(context: Context) {
+ private val dbHelper = DBTransdtlHelper.getInstance(context)
+ private val TABLE = DBTransdtlHelper.TABLE_NAME_DTL_ONLINE
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun save(record: TransdtlOnlineRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun update(record: TransdtlOnlineRecord): Boolean {
+ val db = dbHelper.writableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.update(
+ TABLE,
+ values,
+ BeanPropEnum.TransdtlOnline.devseqno.toString() + "=?",
+ arrayOf(record.devseqno.toString())
+ ) > 0
+ ) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun getAll(): List<TransdtlOnlineRecord> {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val orderby = BeanPropEnum.TransdtlOnline.devseqno.toString() + " desc"
+ try {
+ cursor = db.query(TABLE, null, null, null, null, null, orderby)
+ val list = ArrayList<TransdtlOnlineRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun getUnconfirm(): List<TransdtlOnlineRecord> {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val selection = BeanPropEnum.TransdtlOnline.upflag.toString() + "=?"
+ try {
+ cursor = db.query(TABLE, null, selection, arrayOf("0"), null, null, null)
+ val list = ArrayList<TransdtlOnlineRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun getLast(): TransdtlOnlineRecord? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val orderBy = BeanPropEnum.TransdtlOnline.devseqno.toString() + " desc"
+ try {
+ cursor = db.query(TABLE, null, null, null, null, null, orderBy, "1")
+ if (cursor != null && cursor.moveToNext()) {
+ return getRecord(cursor)
+ }
+ return null
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun getUnconfirmNum(): Int {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val sql = ("select COUNT("
+ + BeanPropEnum.TransdtlOnline.devseqno
+ + ") as num from " + TABLE
+ + " where " + BeanPropEnum.TransdtlOnline.upflag + "=0")
+ try {
+ cursor = db.rawQuery(sql, null)
+ if (cursor != null && cursor.moveToNext()) {
+ return cursor.getInt(cursor.getColumnIndex("num"))
+ }
+ } finally {
+ cursor?.close()
+ }
+ return 0
+ }
+
+ fun getMaxSeqno(): Int {
+ val db = dbHelper.readableDatabase
+ val sql = ("select max(${BeanPropEnum.TransdtlOnline.devseqno}) as seqno from $TABLE")
+ var cursor: Cursor? = null
+ try {
+ cursor = db.rawQuery(sql, null, null)
+ if (cursor != null && cursor.moveToNext()) {
+ return cursor.getInt(cursor.getColumnIndex("seqno"))
+ }
+ } finally {
+ cursor?.close()
+ }
+ return 0
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun clear(date: String): Boolean {
+ val db = dbHelper.writableDatabase
+ val selection =
+ BeanPropEnum.TransdtlOnline.upflag.toString() + "=? and " + BeanPropEnum.TransdtlOnline.transdate + "<?"
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, selection, arrayOf("1", date)) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): TransdtlOnlineRecord {
+ val record = TransdtlOnlineRecord()
+ record.devphyid =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.devphyid.toString()))
+ record.transdate =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.transdate.toString()))
+ record.transtime =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.transtime.toString()))
+ record.devseqno =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.devseqno.toString()))
+ record.cardno =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.cardno.toString()))
+ record.cardphyid =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.cardphyid.toString()))
+ record.qrcode =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.qrcode.toString()))
+ record.transtype =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.transtype.toString()))
+ record.billno =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.billno.toString()))
+ record.managefeetype =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.managefeetype.toString()))
+ record.username =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.username.toString()))
+ record.payamt =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.payamt.toString()))
+ record.extraamt =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.extraamt.toString()))
+ var flag =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.reversalflag.toString()))
+ when (flag) {
+ ReversalFlag.NONE.toString() -> record.reversalflag = ReversalFlag.NONE
+ ReversalFlag.AUTO.toString() -> record.reversalflag = ReversalFlag.AUTO
+ ReversalFlag.MANUAL.toString() -> record.reversalflag = ReversalFlag.MANUAL
+ else -> record.reversalflag = ReversalFlag.NONE
+ }
+ record.reversalbillno =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.reversalbillno.toString()))
+ flag =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.status.toString()))
+ when (flag) {
+ PayStatus.INIT.toString() -> record.status = PayStatus.INIT
+ PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
+ PayStatus.SUC.toString() -> record.status = PayStatus.SUC
+ else -> record.status = PayStatus.INIT
+ }
+ record.upflag =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlOnline.upflag.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: TransdtlOnlineRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.TransdtlOnline.devphyid.toString(), record.devphyid)
+ values.put(BeanPropEnum.TransdtlOnline.transdate.toString(), record.transdate)
+ values.put(BeanPropEnum.TransdtlOnline.transtime.toString(), record.transtime)
+ values.put(BeanPropEnum.TransdtlOnline.devseqno.toString(), record.devseqno)
+ values.put(BeanPropEnum.TransdtlOnline.cardno.toString(), record.cardno)
+ values.put(BeanPropEnum.TransdtlOnline.cardphyid.toString(), record.cardphyid)
+ values.put(BeanPropEnum.TransdtlOnline.qrcode.toString(), record.qrcode)
+ values.put(BeanPropEnum.TransdtlOnline.transtype.toString(), record.transtype)
+ values.put(BeanPropEnum.TransdtlOnline.payamt.toString(), record.payamt)
+ values.put(BeanPropEnum.TransdtlOnline.extraamt.toString(), record.extraamt)
+ values.put(BeanPropEnum.TransdtlOnline.billno.toString(), record.billno)
+ values.put(BeanPropEnum.TransdtlOnline.managefeetype.toString(), record.managefeetype)
+ values.put(BeanPropEnum.TransdtlOnline.username.toString(), record.username)
+ values.put(
+ BeanPropEnum.TransdtlOnline.reversalflag.toString(),
+ record.reversalflag.toString()
+ )
+ values.put(BeanPropEnum.TransdtlOnline.reversalbillno.toString(), record.reversalbillno)
+ values.put(BeanPropEnum.TransdtlOnline.status.toString(), record.status.toString())
+ values.put(BeanPropEnum.TransdtlOnline.upflag.toString(), record.upflag)
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
index b304c45..f745fc1 100644
--- a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
+++ b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
@@ -1,126 +1,131 @@
-package com.supwisdom.db
-
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.PayStatus
-import com.supwisdom.entity.ReversalFlag
-import com.supwisdom.entity.TransdtlUnionRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/25
- ** @desc
- **/
-class TransdtlUnionDao constructor(context: Context) {
- private val tablesql = StringBuilder()
- private val dbHelper = DBTransdtlHelper.getInstance(context)
-
- init {
- tablesql.append("select ")
- .append(BeanPropEnum.TransdtlOffline.transdate).append(",")
- .append(BeanPropEnum.TransdtlOffline.transtime).append(",")
- .append(BeanPropEnum.TransdtlOffline.devseqno).append(",")
- .append(" 'offcard' as ").append(BeanPropEnum.TransdtlUnion.payway).append(",")
- .append(BeanPropEnum.TransdtlOffline.reversalflag).append(",")
- .append(BeanPropEnum.TransdtlOffline.payamt).append(",")
- .append(BeanPropEnum.TransdtlOffline.status).append(",")
- .append(" 'null' as ").append(BeanPropEnum.TransdtlUnion.username).append(",")
- .append(BeanPropEnum.TransdtlOffline.cardno).append(",")
- .append(BeanPropEnum.TransdtlOffline.upflag)
- .append(" from ").append(DBTransdtlHelper.TABLE_NAME_DTL_OFFLINE)
- .append(" UNION ALL select ")
- .append(BeanPropEnum.TransdtlOnline.transdate).append(",")
- .append(BeanPropEnum.TransdtlOnline.transtime).append(",")
- .append(BeanPropEnum.TransdtlOnline.devseqno).append(",")
- .append(BeanPropEnum.TransdtlOnline.transtype).append(" as ").append(BeanPropEnum.TransdtlUnion.payway)
- .append(",")
- .append(BeanPropEnum.TransdtlOnline.reversalflag).append(",")
- .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)
- }
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun get(date: String, offset: Int, flag: Int, num: Int): List<TransdtlUnionRecord> {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- var sql = when (flag) {
- 0 -> {
- ("select * from ("
- + tablesql.toString()
- + ") where " + BeanPropEnum.TransdtlUnion.transdate + "='" + date
- + "' order by " + BeanPropEnum.TransdtlUnion.transtime
- + " desc ")
- }
- 1 -> {
- ("select * from ("
- + tablesql.toString()
- + ") where " + BeanPropEnum.TransdtlUnion.transdate + "='" + date
- + "' and " + BeanPropEnum.TransdtlUnion.status + "='"
- + PayStatus.SUC.toString()
- + "' order by " + BeanPropEnum.TransdtlUnion.transtime
- + " desc ")
- }
- else -> {
- ("select * from ("
- + tablesql.toString()
- + ") where " + BeanPropEnum.TransdtlUnion.transdate + "='" + date
- + "' and " + BeanPropEnum.TransdtlUnion.status + "='"
- + PayStatus.FAIL.toString()
- + "' order by " + BeanPropEnum.TransdtlUnion.transtime
- + " desc ")
- }
- }
- sql += if (offset > 0) {
- " limit $num offset $offset"
- } else {
- " limit $num"
- }
- try {
- cursor = db.rawQuery(sql, null)
- val list = ArrayList<TransdtlUnionRecord>()
- while (cursor != null && cursor.moveToNext()) {
- list.add(getRecord(cursor))
- }
- return list
- } finally {
- cursor?.close()
- }
- }
-
- private fun getRecord(cursor: Cursor): TransdtlUnionRecord {
- val record = TransdtlUnionRecord()
- record.transdate = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.transdate.toString()))
- record.transtime = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.transtime.toString()))
- 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
- ReversalFlag.AUTO.toString() -> record.reversalflag = ReversalFlag.AUTO
- ReversalFlag.MANUAL.toString() -> record.reversalflag = ReversalFlag.MANUAL
- else -> record.reversalflag = ReversalFlag.NONE
- }
- record.payamt = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.payamt.toString()))
- flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.status.toString()))
- when (flag) {
- PayStatus.INIT.toString() -> record.status = PayStatus.INIT
- PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
- PayStatus.SUC.toString() -> record.status = PayStatus.SUC
- else -> record.status = PayStatus.INIT
- }
- record.upflag = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.upflag.toString()))
- return record
- }
+package com.supwisdom.db
+
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.PayStatus
+import com.supwisdom.entity.ReversalFlag
+import com.supwisdom.entity.TransdtlUnionRecord
+
+/**
+ ** create by zzq on 2019/7/25
+ ** @desc
+ **/
+class TransdtlUnionDao constructor(context: Context) {
+ private val tablesql = StringBuilder()
+ private val dbHelper = DBTransdtlHelper.getInstance(context)
+
+ init {
+ tablesql.append("select ")
+ .append(BeanPropEnum.TransdtlOffline.transdate).append(",")
+ .append(BeanPropEnum.TransdtlOffline.transtime).append(",")
+ .append(BeanPropEnum.TransdtlOffline.devseqno).append(",")
+ .append(" 'offcard' as ").append(BeanPropEnum.TransdtlUnion.payway).append(",")
+ .append(BeanPropEnum.TransdtlOffline.reversalflag).append(",")
+ .append(BeanPropEnum.TransdtlOffline.payamt).append(",")
+ .append(BeanPropEnum.TransdtlOffline.status).append(",")
+ .append(" 'null' as ").append(BeanPropEnum.TransdtlUnion.username).append(",")
+ .append(BeanPropEnum.TransdtlOffline.cardno).append(",")
+ .append(BeanPropEnum.TransdtlOffline.upflag)
+ .append(" from ").append(DBTransdtlHelper.TABLE_NAME_DTL_OFFLINE)
+ .append(" UNION ALL select ")
+ .append(BeanPropEnum.TransdtlOnline.transdate).append(",")
+ .append(BeanPropEnum.TransdtlOnline.transtime).append(",")
+ .append(BeanPropEnum.TransdtlOnline.devseqno).append(",")
+ .append(BeanPropEnum.TransdtlOnline.transtype).append(" as ")
+ .append(BeanPropEnum.TransdtlUnion.payway)
+ .append(",")
+ .append(BeanPropEnum.TransdtlOnline.reversalflag).append(",")
+ .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)
+ }
+
+ fun get(date: String, offset: Int, flag: Int, num: Int): List<TransdtlUnionRecord> {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ var sql = when (flag) {
+ 0 -> {
+ ("select * from ("
+ + tablesql.toString()
+ + ") where " + BeanPropEnum.TransdtlUnion.transdate + "='" + date
+ + "' order by " + BeanPropEnum.TransdtlUnion.transtime
+ + " desc ")
+ }
+ 1 -> {
+ ("select * from ("
+ + tablesql.toString()
+ + ") where " + BeanPropEnum.TransdtlUnion.transdate + "='" + date
+ + "' and " + BeanPropEnum.TransdtlUnion.status + "='"
+ + PayStatus.SUC.toString()
+ + "' order by " + BeanPropEnum.TransdtlUnion.transtime
+ + " desc ")
+ }
+ else -> {
+ ("select * from ("
+ + tablesql.toString()
+ + ") where " + BeanPropEnum.TransdtlUnion.transdate + "='" + date
+ + "' and " + BeanPropEnum.TransdtlUnion.status + "='"
+ + PayStatus.FAIL.toString()
+ + "' order by " + BeanPropEnum.TransdtlUnion.transtime
+ + " desc ")
+ }
+ }
+ sql += if (offset > 0) {
+ " limit $num offset $offset"
+ } else {
+ " limit $num"
+ }
+ try {
+ cursor = db.rawQuery(sql, null)
+ val list = ArrayList<TransdtlUnionRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): TransdtlUnionRecord {
+ val record = TransdtlUnionRecord()
+ record.transdate =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.transdate.toString()))
+ record.transtime =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.transtime.toString()))
+ 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
+ ReversalFlag.AUTO.toString() -> record.reversalflag = ReversalFlag.AUTO
+ ReversalFlag.MANUAL.toString() -> record.reversalflag = ReversalFlag.MANUAL
+ else -> record.reversalflag = ReversalFlag.NONE
+ }
+ record.payamt =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.payamt.toString()))
+ flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.status.toString()))
+ when (flag) {
+ PayStatus.INIT.toString() -> record.status = PayStatus.INIT
+ PayStatus.FAIL.toString() -> record.status = PayStatus.FAIL
+ PayStatus.SUC.toString() -> record.status = PayStatus.SUC
+ else -> record.status = PayStatus.INIT
+ }
+ record.upflag =
+ cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.upflag.toString()))
+ return record
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/WhiteListDao.kt b/app/src/main/java/com/supwisdom/db/WhiteListDao.kt
index 2630c43..0c734fc 100644
--- a/app/src/main/java/com/supwisdom/db/WhiteListDao.kt
+++ b/app/src/main/java/com/supwisdom/db/WhiteListDao.kt
@@ -1,82 +1,88 @@
-package com.supwisdom.db
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.Cursor
-import com.supwisdom.entity.WhiteListRecord
-import java.util.concurrent.locks.Lock
-
-/**
- ** create by zzq on 2019/7/25
- ** @desc
- **/
-class WhiteListDao constructor(context: Context) {
- private val dbHelper = DBParaHelper.getInstance(context)
- private val TABLE = DBParaHelper.TABLE_NAME_WHITELIST
-
- fun getLock(): Lock {
- return dbHelper.getLock()
- }
-
- fun replace(list: List<WhiteListRecord>): Boolean {
- val db = dbHelper.readableDatabase
- try {
- db.beginTransaction()
- list.forEach {
- val values = getContentValues(it)
- if (db.replace(TABLE, null, values) < 0) {
- return false
- }
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- fun get(cardphyid: String, cardno: String): WhiteListRecord? {
- val db = dbHelper.readableDatabase
- var cursor: Cursor? = null
- val selection = BeanPropEnum.WhiteList.cardphyid.toString() + "=? and " + BeanPropEnum.WhiteList.cardno + "=?"
- try {
- cursor = db.query(TABLE, null, selection, arrayOf(cardphyid, cardno), null, null, null)
- if (cursor != null && cursor.moveToNext()) {
- return getRecord(cursor)
- }
- } finally {
- cursor?.close()
- }
- return null
- }
-
- fun clear(): Boolean {
- val db = dbHelper.writableDatabase
- try {
- db.beginTransaction()
- if (db.delete(TABLE, null, null) < 0) {
- return false
- }
- db.setTransactionSuccessful()
- return true
- } finally {
- db.endTransaction()
- }
- }
-
- private fun getRecord(cursor: Cursor): WhiteListRecord {
- val record = WhiteListRecord()
- record.cardphyid = cursor.getString(cursor.getColumnIndex(BeanPropEnum.WhiteList.cardphyid.toString()))
- record.cardno = cursor.getString(cursor.getColumnIndex(BeanPropEnum.WhiteList.cardno.toString()))
- record.status = cursor.getString(cursor.getColumnIndex(BeanPropEnum.WhiteList.status.toString()))
- return record
- }
-
- private fun getContentValues(record: WhiteListRecord): ContentValues {
- val values = ContentValues()
- values.put(BeanPropEnum.WhiteList.cardphyid.toString(), record.cardphyid)
- values.put(BeanPropEnum.WhiteList.cardno.toString(), record.cardno)
- values.put(BeanPropEnum.WhiteList.status.toString(), record.status)
- return values
- }
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.WhiteListRecord
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/25
+ ** @desc
+ **/
+class WhiteListDao constructor(context: Context) {
+ private val dbHelper = DBParaHelper.getInstance(context)
+ private val TABLE = DBParaHelper.TABLE_NAME_WHITELIST
+
+ private val lock = ReentrantLock()
+ fun getLock(): Lock {
+ return lock
+ }
+
+ fun replace(list: List<WhiteListRecord>): Boolean {
+ val db = dbHelper.readableDatabase
+ try {
+ db.beginTransaction()
+ list.forEach {
+ val values = getContentValues(it)
+ if (db.replace(TABLE, null, values) < 0) {
+ return false
+ }
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun get(cardphyid: String, cardno: String): WhiteListRecord? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ val selection =
+ BeanPropEnum.WhiteList.cardphyid.toString() + "=? and " + BeanPropEnum.WhiteList.cardno + "=?"
+ try {
+ cursor = db.query(TABLE, null, selection, arrayOf(cardphyid, cardno), null, null, null)
+ if (cursor != null && cursor.moveToNext()) {
+ return getRecord(cursor)
+ }
+ } finally {
+ cursor?.close()
+ }
+ return null
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): WhiteListRecord {
+ val record = WhiteListRecord()
+ record.cardphyid =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.WhiteList.cardphyid.toString()))
+ record.cardno =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.WhiteList.cardno.toString()))
+ record.status =
+ cursor.getString(cursor.getColumnIndex(BeanPropEnum.WhiteList.status.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: WhiteListRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.WhiteList.cardphyid.toString(), record.cardphyid)
+ values.put(BeanPropEnum.WhiteList.cardno.toString(), record.cardno)
+ values.put(BeanPropEnum.WhiteList.status.toString(), record.status)
+ return values
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt b/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt
index 8829b75..8df002b 100644
--- a/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt
@@ -1,21 +1,23 @@
-package com.supwisdom.entity
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc 后台系统参数
- **/
-class SysParaRecord {
- var returnFlag: Int = 0// 消费撤销开关 0bit -0x1表示冲正使能
- var heatBeat: Int = 0// 心跳间隔
- var offlineEnable: Boolean = false // 脱机消费时限开关 false-关闭, true-开启
- var maxOfflineDays: Int = 0// 最大脱机天数
- var maxDayOfflineAmt: Int = 0//同卡当天离线交易最大金额
- var mngPasswd: String? = null// 维护密码
- var sucShowtime: Int = 0// 消费成功显示时间
- var failShowtime: Int = 0 //消费失败显示时间
- var commTime: Int = 0 //通讯超时时间 默认2s
- /**
- * 定额消费同卡消费间隔(s)
- */
- var fixpayGap: Int = 0
+package com.supwisdom.entity
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc 后台系统参数
+ **/
+class SysParaRecord {
+ var returnFlag: Int = 0// 消费撤销开关 0bit -0x1表示冲正使能
+ var heatBeat: Int = 0// 心跳间隔
+ var offlineEnable: Boolean = false // 脱机消费时限开关 false-关闭, true-开启
+ var maxOfflineDays: Int = 0// 最大脱机天数
+ var maxDayOfflineAmt: Int = 0//同卡当天离线交易最大金额
+ var mngPasswd: String? = null// 维护密码
+ var sucShowtime: Int = 0// 消费成功显示时间
+ var failShowtime: Int = 0 //消费失败显示时间
+ var commTime: Int = 0 //通讯超时时间 默认2s
+ var synoCode: Boolean = false //晟元扫码 false--关闭 true--开启
+
+ /**
+ * 定额消费同卡消费间隔(s)
+ */
+ var fixpayGap: Int = 0
}
\ 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 74594cc..d3cc649 100644
--- a/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
+++ b/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
@@ -1,276 +1,298 @@
-package com.supwisdom.okhttp
-
-import android.text.TextUtils
-import okhttp3.*
-import okhttp3.MediaType.Companion.toMediaTypeOrNull
-import java.io.IOException
-import java.io.UnsupportedEncodingException
-import java.security.KeyManagementException
-import java.security.KeyStore
-import java.security.KeyStoreException
-import java.security.NoSuchAlgorithmException
-import java.util.*
-import java.util.concurrent.TimeUnit
-import javax.net.ssl.*
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-@Suppress("DEPRECATION")
-class NetworkHandler private constructor() {
- companion object {
- private var instance: NetworkHandler? = null
- fun getInstance(): NetworkHandler {
- if (instance == null) {
- synchronized(NetworkHandler::class.java) {
- if (instance == null) {
- instance = NetworkHandler()
- }
- }
- }
- return instance!!
- }
- }
-
- private var client: OkHttpClient? = null
- private var clientLong: OkHttpClient
- private val JSON = "application/json; charset=utf-8".toMediaTypeOrNull()
- private val FORM_ENCODE = "application/x-www-form-urlencoded;charset=utf-8".toMediaTypeOrNull()
- private var commTime = 5
- private var tenantId: String? = null
- private var jwt: String? = null
- private var sslSocketFactory: SSLSocketFactory? = null
- private var trustManager: X509TrustManager? = null
-
- init {
- try {
- val trustManagerFactory =
- TrustManagerFactory.getInstance(
- TrustManagerFactory.getDefaultAlgorithm()
- )
- trustManagerFactory.init(null as KeyStore?)
- val trustManagers =
- trustManagerFactory.trustManagers
- check(!(trustManagers.size != 1 || trustManagers[0] !is X509TrustManager)) {
- ("Unexpected default trust managers:"
- + Arrays.toString(trustManagers))
- }
- trustManager = trustManagers[0] as X509TrustManager
- val sslContext = SSLContext.getInstance("TLS")
- sslContext.init(null, arrayOf<TrustManager?>(trustManager), null)
- sslSocketFactory = sslContext.socketFactory
- } catch (e: NoSuchAlgorithmException) {
- e.printStackTrace()
- } catch (e: KeyManagementException) {
- e.printStackTrace()
- } catch (e: KeyStoreException) {
- e.printStackTrace()
- }
-
- client = OkHttpClient()
- .newBuilder()
- .followRedirects(true)
- .followSslRedirects(true)
- .retryOnConnectionFailure(false)
- .readTimeout(commTime.toLong(), TimeUnit.SECONDS)
- .writeTimeout(1, TimeUnit.SECONDS)
- .connectTimeout(1, TimeUnit.SECONDS)
- .hostnameVerifier(TrustAllHostnameVerifier())
- .sslSocketFactory(sslSocketFactory!!, trustManager!!)
- .build()
- clientLong = OkHttpClient()
- .newBuilder()
- .followRedirects(true)
- .followSslRedirects(true)
- .retryOnConnectionFailure(false)
- .readTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(1, TimeUnit.SECONDS)
- .connectTimeout(1, TimeUnit.SECONDS)
- .hostnameVerifier(TrustAllHostnameVerifier())
- .sslSocketFactory(sslSocketFactory!!, trustManager!!)
- .build()
-
- }
-
- fun setCommTime(communicateTime: Int) {
- if (communicateTime != 0 && commTime != communicateTime) {
- this.commTime = communicateTime
- client = OkHttpClient()
- .newBuilder()
- .followRedirects(true)
- .followSslRedirects(true)
- .retryOnConnectionFailure(false)
- .readTimeout(commTime.toLong(), TimeUnit.SECONDS)
- .writeTimeout(1, TimeUnit.SECONDS)
- .connectTimeout(1, TimeUnit.SECONDS)
- .hostnameVerifier(TrustAllHostnameVerifier())
- .sslSocketFactory(sslSocketFactory!!, trustManager!!)
- .build()
- }
- }
-
- fun setTenantId(tenantId: String) {
- this.tenantId = tenantId
- }
-
- fun setJwt(jwt: String?) {
- if (TextUtils.isEmpty(jwt)) {
- this.jwt = jwt
- } else {
- this.jwt = "Bearer $jwt"
- }
- }
-
- private class TrustAllHostnameVerifier : HostnameVerifier {
- override fun verify(hostname: String, session: SSLSession): Boolean {
- return true
- }
- }
-
- private fun addExtentHeader(request: Request.Builder): Request.Builder {
- request.addHeader("Accept", "application/json; q=0.5")
- .addHeader("Connection", "close")
- if (!TextUtils.isEmpty(tenantId)) {
- request.addHeader("X-TENANT-ID", tenantId!!)
- }
- if (!TextUtils.isEmpty(jwt)) {
- request.addHeader("Authorization", jwt!!)
- }
- return request
- }
-
- fun get(url: String, params: WebParams?): TransResp? {
- val request = Request.Builder()
- .url(geturl(url, params))
- return getTransResp(addExtentHeader(request).build())
- }
-
- fun get(url: String, params: WebParams, callback: com.supwisdom.okhttp.ICallBackok<Any?>) {
- val request = Request.Builder()
- .url(geturl(url, params))
- client!!.newCall(addExtentHeader(request).build()).enqueue(object : Callback {
- override fun onFailure(call: Call, e: IOException) {
- callback.callback(null)
- }
-
- override fun onResponse(call: Call, response: Response) {
- try {
- val content = response.body!!.string()
- val resp = TransResp(response.code, response.message)
- if (response.isSuccessful) {
- resp.retjson = content
- }
- callback.callback(resp)
- } catch (e: Exception) {
- e.printStackTrace()
- callback.callback(null)
- }
-
- }
- })
- }
-
- fun post(url: String, params: WebParams): TransResp? {
- val builder = FormBody.Builder()
- for (name in params.allParameterNames()) {
- builder.add(name, params.getParameterString(name))
- }
- val request = Request.Builder()
- .url(url)
- .post(builder.build())
- return getTransResp(addExtentHeader(request).build())
- }
-
- fun longPost(url: String, params: WebParams): TransResp? {
- val builder = FormBody.Builder()
- for (name in params.allParameterNames()) {
- builder.add(name, params.getParameterString(name))
- }
- val request = Request.Builder()
- .url(url)
- .post(builder.build())
- return getLongTransResp(addExtentHeader(request).build())
- }
-
- fun post(url: String, json: String): TransResp? {
- val body = RequestBody.create(JSON, json)
- val request = Request.Builder()
- .url(url)
- .post(body)
- return getTransResp(addExtentHeader(request).build())
- }
-
- fun post(url: String, json: String, callback: com.supwisdom.okhttp.ICallBackok<Any?>) {
- val body = RequestBody.create(JSON, json)
- val request = Request.Builder()
- .url(url)
- .post(body)
- client!!.newCall(addExtentHeader(request).build()).enqueue(object : Callback {
- override fun onFailure(call: Call, e: IOException) {
- callback.callback(null)
- }
-
- override fun onResponse(call: Call, response: Response) {
- try {
- val content = response.body!!.string()
- val resp = TransResp(response.code, response.message)
- if (response.isSuccessful) {
- resp.retjson = content
- }
- callback.callback(resp)
- } catch (e: Exception) {
- callback.callback(null)
- }
-
- }
- })
- }
-
- private fun getLongTransResp(request: Request): TransResp? {
- return try {
- val response = clientLong.newCall(request).execute()
- /*响应主体只能被消耗一次*/
- val content = response.body!!.string()
- val resp = TransResp(response.code, response.message)
- if (response.isSuccessful) {
- resp.retjson = content
- }
- resp
- } catch (e: Exception) {
- e.printStackTrace()
- null
- }
-
- }
-
- private fun getTransResp(request: Request): TransResp? {
- return try {
- val response = client!!.newCall(request).execute()
- /*响应主体只能被消耗一次*/
- val content = response.body!!.string()
- val resp = TransResp(response.code, response.message)
- if (response.isSuccessful) {
- resp.retjson = content
- }
- resp
- } catch (e: Exception) {
- e.printStackTrace()
- //通讯超时
- null
- }
- }
-
- private fun geturl(url: String, params: WebParams?): String {
- val sb = StringBuilder()
- sb.append(url)
- if (params != null) {
- try {
- sb.append(params.encodeURL())
- } catch (e: UnsupportedEncodingException) {
- e.printStackTrace()
- }
- }
- return sb.toString()
- }
+package com.supwisdom.okhttp
+
+import android.text.TextUtils
+import okhttp3.*
+import okhttp3.MediaType.Companion.toMediaTypeOrNull
+import java.io.IOException
+import java.io.UnsupportedEncodingException
+import java.security.KeyManagementException
+import java.security.KeyStore
+import java.security.KeyStoreException
+import java.security.NoSuchAlgorithmException
+import java.util.*
+import java.util.concurrent.TimeUnit
+import javax.net.ssl.*
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+@Suppress("DEPRECATION")
+class NetworkHandler private constructor() {
+ companion object {
+ private var instance: NetworkHandler? = null
+ fun getInstance(): NetworkHandler {
+ if (instance == null) {
+ synchronized(NetworkHandler::class.java) {
+ if (instance == null) {
+ instance = NetworkHandler()
+ }
+ }
+ }
+ return instance!!
+ }
+ }
+
+ private var client: OkHttpClient? = null
+ private var clientLong: OkHttpClient
+ private val JSON = "application/json; charset=utf-8".toMediaTypeOrNull()
+ private val FORM_ENCODE = "application/x-www-form-urlencoded;charset=utf-8".toMediaTypeOrNull()
+ private var commTime = 5
+ private var tenantId: String? = null
+ private var jwt: String? = null
+ private var sslSocketFactory: SSLSocketFactory? = null
+ private var trustManager: X509TrustManager? = null
+
+ init {
+ try {
+ val trustManagerFactory =
+ TrustManagerFactory.getInstance(
+ TrustManagerFactory.getDefaultAlgorithm()
+ )
+ trustManagerFactory.init(null as KeyStore?)
+ val trustManagers =
+ trustManagerFactory.trustManagers
+ check(!(trustManagers.size != 1 || trustManagers[0] !is X509TrustManager)) {
+ ("Unexpected default trust managers:"
+ + Arrays.toString(trustManagers))
+ }
+ trustManager = trustManagers[0] as X509TrustManager
+ val sslContext = SSLContext.getInstance("TLS")
+ sslContext.init(null, arrayOf<TrustManager?>(trustManager), null)
+ sslSocketFactory = sslContext.socketFactory
+ } catch (e: NoSuchAlgorithmException) {
+ e.printStackTrace()
+ } catch (e: KeyManagementException) {
+ e.printStackTrace()
+ } catch (e: KeyStoreException) {
+ e.printStackTrace()
+ }
+
+ client = OkHttpClient()
+ .newBuilder()
+ .followRedirects(true)
+ .followSslRedirects(true)
+ .retryOnConnectionFailure(false)
+ .readTimeout(commTime.toLong(), TimeUnit.SECONDS)
+ .writeTimeout(1, TimeUnit.SECONDS)
+ .connectTimeout(1, TimeUnit.SECONDS)
+ .hostnameVerifier(TrustAllHostnameVerifier())
+ .sslSocketFactory(sslSocketFactory!!, trustManager!!)
+ .build()
+ clientLong = OkHttpClient()
+ .newBuilder()
+ .followRedirects(true)
+ .followSslRedirects(true)
+ .retryOnConnectionFailure(false)
+ .readTimeout(60, TimeUnit.SECONDS)
+ .writeTimeout(1, TimeUnit.SECONDS)
+ .connectTimeout(1, TimeUnit.SECONDS)
+ .hostnameVerifier(TrustAllHostnameVerifier())
+ .sslSocketFactory(sslSocketFactory!!, trustManager!!)
+ .build()
+
+ }
+
+ fun setCommTime(communicateTime: Int) {
+ if (communicateTime != 0 && commTime != communicateTime) {
+ this.commTime = communicateTime
+ client = OkHttpClient()
+ .newBuilder()
+ .followRedirects(true)
+ .followSslRedirects(true)
+ .retryOnConnectionFailure(false)
+ .readTimeout(commTime.toLong(), TimeUnit.SECONDS)
+ .writeTimeout(1, TimeUnit.SECONDS)
+ .connectTimeout(1, TimeUnit.SECONDS)
+ .hostnameVerifier(TrustAllHostnameVerifier())
+ .sslSocketFactory(sslSocketFactory!!, trustManager!!)
+ .build()
+ }
+ }
+
+ fun setTenantId(tenantId: String) {
+ this.tenantId = tenantId
+ }
+
+ fun setJwt(jwt: String?) {
+ if (TextUtils.isEmpty(jwt)) {
+ this.jwt = jwt
+ } else {
+ this.jwt = "Bearer $jwt"
+ }
+ }
+
+ private class TrustAllHostnameVerifier : HostnameVerifier {
+ override fun verify(hostname: String, session: SSLSession): Boolean {
+ return true
+ }
+ }
+
+ private fun addExtentHeader(request: Request.Builder): Request.Builder {
+ request.addHeader("Accept", "application/json; q=0.5")
+ .addHeader("Connection", "close")
+ if (!TextUtils.isEmpty(tenantId)) {
+ request.addHeader("X-TENANT-ID", tenantId!!)
+ }
+ if (!TextUtils.isEmpty(jwt)) {
+ request.addHeader("Authorization", jwt!!)
+ }
+ return request
+ }
+
+ fun get(url: String, params: WebParams?): TransResp? {
+ val request = Request.Builder()
+ .url(geturl(url, params))
+ return getTransResp(addExtentHeader(request).build())
+ }
+
+ fun get(url: String, params: WebParams?, headerkey: String): TransResp? {
+ val request = Request.Builder()
+ .url(geturl(url, params))
+ .addHeader("Accept", "application/json; q=0.5")
+ .addHeader("Connection", "close")
+ .addHeader("ApiKey", headerkey.toLowerCase())
+ .build()
+ return getTransResp(request)
+ }
+
+ fun get(url: String, params: WebParams, callback: com.supwisdom.okhttp.ICallBackok<Any?>) {
+ val request = Request.Builder()
+ .url(geturl(url, params))
+ client!!.newCall(addExtentHeader(request).build()).enqueue(object : Callback {
+ override fun onFailure(call: Call, e: IOException) {
+ callback.callback(null)
+ }
+
+ override fun onResponse(call: Call, response: Response) {
+ try {
+ val content = response.body!!.string()
+ val resp = TransResp(response.code, response.message)
+ if (response.isSuccessful) {
+ resp.retjson = content
+ }
+ callback.callback(resp)
+ } catch (e: Exception) {
+ e.printStackTrace()
+ callback.callback(null)
+ }
+
+ }
+ })
+ }
+
+ fun post(url: String, params: WebParams): TransResp? {
+ val builder = FormBody.Builder()
+ for (name in params.allParameterNames()) {
+ builder.add(name, params.getParameterString(name))
+ }
+ val request = Request.Builder()
+ .url(url)
+ .post(builder.build())
+ return getTransResp(addExtentHeader(request).build())
+ }
+
+ fun longPost(url: String, params: WebParams): TransResp? {
+ val builder = FormBody.Builder()
+ for (name in params.allParameterNames()) {
+ builder.add(name, params.getParameterString(name))
+ }
+ val request = Request.Builder()
+ .url(url)
+ .post(builder.build())
+ return getLongTransResp(addExtentHeader(request).build())
+ }
+
+ fun post(url: String, json: String): TransResp? {
+ val body = RequestBody.create(JSON, json)
+ val request = Request.Builder()
+ .url(url)
+ .post(body)
+ return getTransResp(addExtentHeader(request).build())
+ }
+
+ fun post(url: String, json: String, headerkey: String): TransResp? {
+ val request = Request.Builder()
+ .url(url)
+ .addHeader("Accept", "application/json; q=0.5")
+ .addHeader("Content-type", "application/json")
+ .addHeader("Connection", "close")
+ .addHeader("ApiKey", headerkey.toLowerCase())
+ .post(RequestBody.create(JSON, json))
+ .build()
+ return getTransResp(request)
+ }
+
+ fun post(url: String, json: String, callback: ICallBackok<Any?>) {
+ val body = RequestBody.create(JSON, json)
+ val request = Request.Builder()
+ .url(url)
+ .post(body)
+ client!!.newCall(addExtentHeader(request).build()).enqueue(object : Callback {
+ override fun onFailure(call: Call, e: IOException) {
+ callback.callback(null)
+ }
+
+ override fun onResponse(call: Call, response: Response) {
+ try {
+ val content = response.body!!.string()
+ val resp = TransResp(response.code, response.message)
+ if (response.isSuccessful) {
+ resp.retjson = content
+ }
+ callback.callback(resp)
+ } catch (e: Exception) {
+ callback.callback(null)
+ }
+
+ }
+ })
+ }
+
+ private fun getLongTransResp(request: Request): TransResp? {
+ return try {
+ val response = clientLong.newCall(request).execute()
+ /*响应主体只能被消耗一次*/
+ val content = response.body!!.string()
+ val resp = TransResp(response.code, response.message)
+ if (response.isSuccessful) {
+ resp.retjson = content
+ }
+ resp
+ } catch (e: Exception) {
+ e.printStackTrace()
+ null
+ }
+
+ }
+
+ private fun getTransResp(request: Request): TransResp? {
+ return try {
+ val response = client!!.newCall(request).execute()
+ /*响应主体只能被消耗一次*/
+ val content = response.body!!.string()
+ val resp = TransResp(response.code, response.message)
+ if (response.isSuccessful) {
+ resp.retjson = content
+ }
+ resp
+ } catch (e: Exception) {
+ e.printStackTrace()
+ //通讯超时
+ null
+ }
+ }
+
+ private fun geturl(url: String, params: WebParams?): String {
+ val sb = StringBuilder()
+ sb.append(url)
+ if (params != null) {
+ try {
+ sb.append(params.encodeURL())
+ } catch (e: UnsupportedEncodingException) {
+ e.printStackTrace()
+ }
+ }
+ return sb.toString()
+ }
}
\ 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 190773a..dec3a26 100644
--- a/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
+++ b/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
@@ -114,6 +114,7 @@
"max_offline_days" -> record.maxOfflineDays = it.paraval!!.toInt()
"max_day_offline_amt" -> record.maxDayOfflineAmt = it.paraval!!.toInt()
"communicate_time" -> record.commTime = it.paraval!!.toInt()
+ "syno_code" -> record.synoCode = it.paraval == "1"
}
}
if (record.heatBeat == 0) {
@@ -134,6 +135,9 @@
if (record.maxDayOfflineAmt == 0) {
record.maxDayOfflineAmt = 10000
}
+ if (record.mngPasswd.isNullOrEmpty()) {
+ record.mngPasswd = PublicDef.PASSWD_ADMIN_DEFAULT
+ }
if (!pos.replaceSysPara(record)) {
throw SysParaError("保存参数失败")
}
diff --git a/app/src/main/java/com/supwisdom/service/SynoCodeService.kt b/app/src/main/java/com/supwisdom/service/SynoCodeService.kt
new file mode 100644
index 0000000..b9034b1
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/service/SynoCodeService.kt
@@ -0,0 +1,296 @@
+package com.supwisdom.service
+
+import android.content.Context
+import android.util.Log
+import com.supwisdom.activities.SPApplication
+import com.supwisdom.bean.*
+import com.supwisdom.entity.ControlParaRecord
+import com.supwisdom.okhttp.NetworkHandler
+import com.supwisdom.okhttp.TransResp
+import com.supwisdom.utils.*
+import com.synodata.codelib.decoder.CodeID
+import com.synodata.codelib.decoder.CodeUtils
+import com.synodata.codelib.decoder.IActivateListener
+import java.net.HttpURLConnection
+
+/**
+ ** create by zzq on 2020/8/20
+ ** @desc 晟元二维码激活管理接口
+ **/
+class SynoCodeService {
+ private val TAG = "SynoCodeService"
+ private val baseUrl = "https://yuexiao-yun.supwisdom.com/posregistry"
+ private val pos = SPApplication.getInstance().getPos()
+ private val syncLock = Object()
+ private var active = false
+ private var activeMsg: String? = null
+ private var licenseName = "syno_${CommonUtil.getHardwareAddress().replace(":", "")}.lic"
+
+ fun synoCodeActive(context: Context): BaseResp {
+ if (activeByLocalLicense(context)) {
+ return BaseResp(PublicDef.SUCCESS, "本地激活成功")
+ }
+ val posid = CommonUtil.getSerialNumber()
+ var resp = getRegisterStatus(posid) ?: return BaseResp(PublicDef.ERROR, "获取设备注册状态超时")
+ if (resp.retcode != HttpURLConnection.HTTP_OK) {
+ return BaseResp(resp.retcode, resp.retmsg)
+ }
+ val registerStatusRetBean =
+ GsonUtil.GsonToBean(resp.retjson!!, EpaySynoRegisterStatusRetBean::class.java)
+ when (registerStatusRetBean.status) {
+ "unregister" -> {
+ resp = registerDevice(posid, PublicDef.SCHOOL_NO)
+ ?: return BaseResp(PublicDef.ERROR, "注册设备超时")
+ if (resp.retcode != HttpURLConnection.HTTP_OK) {
+ return BaseResp(resp.retcode, resp.retmsg)
+ }
+ return BaseResp(PublicDef.ERROR, "等待后台授权")
+ }
+ "unauthorized" -> return BaseResp(PublicDef.ERROR, "设备未授权")
+ "authorized" -> {
+ return activeOnline(context)
+ }
+ "activated" -> {
+ resp = getActiveStatus(posid) ?: return BaseResp(PublicDef.ERROR, "下载激活文件超时")
+ if (resp.retcode != HttpURLConnection.HTTP_OK) {
+ return BaseResp(resp.retcode, resp.retmsg)
+ }
+ val activeRetBean =
+ GsonUtil.GsonToBean(resp.retjson!!, EpaySynoActiveRetBean::class.java)
+ if (activeRetBean.license.isNullOrEmpty()) {
+ return BaseResp(PublicDef.ERROR, "激活文件为空")
+ }
+ if (!saveLicenseToLocal(activeRetBean.license)) {
+ return BaseResp(PublicDef.ERROR, "保存激活文件失败")
+ }
+ if (!activeByLocalLicense(context)) {
+ return BaseResp(PublicDef.ERROR, "本地激活失败")
+ }
+ return BaseResp(PublicDef.SUCCESS, "激活成功")
+ }
+ else -> {
+ return BaseResp(PublicDef.ERROR, "状态错误:${registerStatusRetBean.status}")
+ }
+ }
+ }
+
+ fun uploadActiveLicense(): BaseResp {
+ val sdpath = FileUtil.getSynoLicensePath()
+ if (sdpath.isNullOrEmpty()) {
+ return BaseResp(PublicDef.ERROR, "获取本地路径失败")
+ }
+
+ val licenseByte = FileUtil.readSynoLicenseFile("${sdpath}${licenseName}")
+ ?: return BaseResp(PublicDef.ERROR, "读取激活文件超时")
+ val resp = activeDevice(CommonUtil.getSerialNumber(), UrlBase64.encode(licenseByte))
+ ?: return BaseResp(PublicDef.ERROR, "上传激活文件超时")
+ if (resp.retcode != HttpURLConnection.HTTP_OK) {
+ val retBean =
+ GsonUtil.GsonToBean(resp.retjson!!, EpaySynoLicenseUploadRetBean::class.java)
+ return BaseResp(PublicDef.ERROR, retBean.message)
+ }
+ return BaseResp(PublicDef.SUCCESS, "上传激活文件成功")
+ }
+
+ private fun saveLicenseToLocal(license: String): Boolean {
+ val sdpath = FileUtil.getSynoLicensePath()
+ if (sdpath.isNullOrEmpty()) {
+ return false
+ }
+ if (FileUtil.writeSynoLicenseFile("${sdpath}${licenseName}", UrlBase64.decode(license))) {
+ return true
+ }
+ return false
+ }
+
+ fun activeByLocalLicense(context: Context): Boolean {
+ saveActiveStatus(false)
+ val sdpath = FileUtil.getSynoLicensePath()
+ if (sdpath.isNullOrEmpty()) {
+ return false
+ }
+ /**
+ *** 设置一个可读和可写的路径来保存下载许可证文件。
+ ** path需要以“/”结尾
+ **/
+ CodeUtils.setLicPathName(sdpath, licenseName)
+ CodeUtils.enableDebug(false)
+ CodeUtils.enableSaveFailImage(false)
+ val mUtils = CodeUtils(context)
+ if (!mUtils.isBarcodeActivated) {
+ return false
+ }
+ configBarcode(context)
+ return true
+ }
+
+ private fun activeOnline(context: Context): BaseResp {
+ saveActiveStatus(false)
+ val sdpath = FileUtil.getSynoLicensePath()
+ if (sdpath.isNullOrEmpty()) {
+ return BaseResp(PublicDef.ERROR, "获取本地路径失败")
+ }
+ /**
+ *** 设置一个可读和可写的路径来保存下载许可证文件。
+ ** path需要以“/”结尾
+ **/
+ CodeUtils.setLicPathName(sdpath, licenseName)
+ CodeUtils.enableDebug(false)
+ CodeUtils.enableSaveFailImage(false)
+ val mUtils = CodeUtils(context)
+ if (!mUtils.isBarcodeActivated) {
+ active = false
+ activeMsg = "等待激活结果"
+ mUtils.tryActivateBarcode(object : IActivateListener {
+ /**
+ * 此函数将在活动进程期间调用,并返回进程消息
+ */
+ override fun onActivateProcess(msg: String) {
+ //sendMessage(LoadPresenter.LOAD_CODE_ACTIVE_PRO, "正在激活扫码算法...")
+ Log.d(TAG, "正在激活扫码算法:$msg")
+ }
+
+ /**
+ * 此函数将在活动进程之后调用。
+ * result_code: CodeUtils.RESULT_MSG_SUCCESS 意味着成功,其他意味着失败
+ * error: 返回失败原因消息.
+ **/
+ override fun onActivateResult(
+ result_code: Int,
+ error: String
+ ) { // post the result message
+ if (CodeUtils.RESULT_MSG_SUCCESS == result_code) {
+// sendMessage(LoadPresenter.LOAD_CODE_ACTIVE_SUC, "激活扫码算法成功")
+ configBarcode(context)
+ active = true
+// sendMessage(LoadPresenter.LOAD_SUCCESS, "加载成功")
+ } else {
+// sendMessage(LoadPresenter.LOAD_CODE_ACTIVE_FAIL, "激活扫码算法失败:$result_code,$error")
+ LogUtil.e(TAG, "激活晟元扫码算法失败:$result_code,$error")
+// sendMessage(LoadPresenter.JUMP_TO_UNREGISTER, "请确认设备能连外网,激活扫码算法失败:$result_code,$error")
+ activeMsg = "请确认设备能连外网,激活扫码算法失败:$result_code,$error"
+ }
+ synchronized(syncLock) {
+ syncLock.notify()
+ }
+ }
+
+ /**
+ * 调用活动函数时的当前活动状态。
+ * 如果该函数处于非活动状态,则在活动进程完成时将返回该函数。
+ */
+ override fun onActivateState(bActivated: Boolean) {
+ if (bActivated) {
+ /**
+ * 条形码处于激活状态
+ * 配置条形码
+ */
+ active = true
+ } else {
+ /**
+ * 激活失败,界面提示
+ */
+ }
+ }
+ })
+ synchronized(syncLock) {
+ syncLock.wait(10 * 1000)
+ }
+ return if (active) {
+ BaseResp(PublicDef.SUCCESS, "激活成功")
+ } else {
+ BaseResp(PublicDef.ERROR, activeMsg)
+ }
+ } else {
+ configBarcode(context)
+ return BaseResp(PublicDef.SUCCESS, "激活成功")
+ }
+ }
+
+ /**
+ * 配置条码功能集成
+ */
+ private fun configBarcode(context: Context) {
+ val mUtils = CodeUtils(context)
+ //清除之前的设置
+ mUtils.enableAllFormats(false)
+ // mUtils.enableAllFormats(true);
+//设置新的配置
+// for (int i = 0; i < mBarcodeList.length; i++) {
+// mUtils.enableCodeFormat(mBarcodeList[i]);
+// }
+ mUtils.enableCodeFormat(CodeID.QR)
+ saveActiveStatus(true)
+ }
+
+ private fun registerDevice(posid: String?, schoolno: String?): TransResp? {
+ if (posid.isNullOrEmpty()) {
+ return TransResp(PublicDef.ERROR, "posid为空")
+ }
+ if (schoolno.isNullOrEmpty()) {
+ return TransResp(PublicDef.ERROR, "schoolno为空")
+ }
+ val reqBean = EpaySynoRegisterReqBean()
+ reqBean.schoolCode = schoolno
+ reqBean.termDateTime = DateUtil.getNowDateTimeNoFormat()
+ return NetworkHandler.getInstance().post(
+ "${baseUrl}/pos/registry/${posid}",
+ GsonUtil.GsonString(reqBean),
+ getSignKey(posid)
+ )
+ }
+
+ private fun getRegisterStatus(posid: String?): TransResp? {
+ if (posid.isNullOrEmpty()) {
+ return TransResp(PublicDef.ERROR, "posid为空")
+ }
+ return NetworkHandler.getInstance()
+ .get("${baseUrl}/pos/registry/${posid}", null, getSignKey(posid))
+ }
+
+ private fun activeDevice(posid: String?, license: String?): TransResp? {
+ if (posid.isNullOrEmpty()) {
+ return TransResp(PublicDef.ERROR, "posid为空")
+ }
+ if (license.isNullOrEmpty()) {
+ return TransResp(PublicDef.ERROR, "license为空")
+ }
+ val reqBean = EpaySynoActiveReqBean()
+ reqBean.license = license
+ return NetworkHandler.getInstance().post(
+ "${baseUrl}/pos/activate/${posid}",
+ GsonUtil.GsonString(reqBean),
+ getSignKey(posid)
+ )
+ }
+
+ private fun getActiveStatus(posid: String?): TransResp? {
+ if (posid.isNullOrEmpty()) {
+ return TransResp(PublicDef.ERROR, "posid为空")
+ }
+ return NetworkHandler.getInstance()
+ .get("${baseUrl}/pos/activate/${posid}", null, getSignKey(posid))
+ }
+
+ private fun getSignKey(posid: String): String {
+ return CryptUtil.HASH256("${posid}:9Srqd86Ekgb7W7UGKl7dOHKBPLSJhQEG")
+ }
+
+ private fun saveActiveStatus(active: Boolean) {
+ if (active) {
+ pos.replaceControlPara(
+ ControlParaRecord(
+ PublicDef.CONTROL_SYNOCODE_ACTIVE,
+ "激活成功时间:" + DateUtil.getNowDateTimeNoFormat()
+ )
+ )
+ } else {
+ pos.replaceControlPara(
+ ControlParaRecord(
+ PublicDef.CONTROL_SYNOCODE_ACTIVE,
+ "激活失败时间:" + DateUtil.getNowDateTimeNoFormat()
+ )
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/CommonUtil.kt b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
index 253a752..7ccc434 100644
--- a/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
@@ -1,287 +1,315 @@
-@file:Suppress("DEPRECATION")
-
-package com.supwisdom.utils
-
-import android.annotation.SuppressLint
-import android.app.Activity
-import android.app.ActivityManager
-import android.content.ContentResolver
-import android.content.Context
-import android.content.Intent
-import android.content.pm.PackageManager
-import android.net.Uri
-import android.os.Build
-import android.os.PowerManager
-import android.provider.Settings
-import android.view.WindowManager
-import android.widget.EditText
-import com.supwisdom.activities.SPApplication
-import java.io.File
-import java.io.FileOutputStream
-import java.io.PrintWriter
-import java.io.StringWriter
-import java.util.regex.Pattern
-
-/**
- * @author zzq
- * @date 2018/5/9.
- * @version 1.0.1
- * @desc 公共类
- */
-object CommonUtil {
- fun doSleep(ms: Int) {
- try {
- Thread.sleep(ms.toLong())
- } catch (e: InterruptedException) {
- e.printStackTrace()
- }
- }
-
- fun getEditView(et: EditText): String {
- return et.text.toString().trim { it <= ' ' }.replace(" ", "")
- }
-
- fun getCommunicateTime(): Int {
- var commTime = 2
- val sysRecord = SPApplication.getInstance().getPos().getSysPara()
- if (sysRecord != null) {
- commTime = sysRecord.commTime
- if (commTime == 0) {
- commTime = 2
- }
- }
- return commTime
- }
-
- fun getSerialNumber(): String? {
- try {
- val c = Class.forName("android.os.SystemProperties")
- val get = c.getMethod("get", String::class.java)
- return get.invoke(c, "ro.product.firmware") as String
- } catch (ex: Exception) {
- ex.printStackTrace()
- }
-
- return null
- }
-
- fun YuanToFen(yuan: Double): Int {
- return Math.round(yuan * 100).toInt()
- }
-
- fun upgrade(context: Context, filename: String) {
- val intent = Intent(Intent.ACTION_VIEW)
- val uri = Uri.fromFile(File(filename))
- intent.setDataAndType(uri, "application/vnd.android.package-archive")
- (context as Activity).startActivityForResult(intent, 0)
- }
-
- fun isNumeric(str: String): Boolean {
- val pattern = Pattern.compile("[0-9]*")
- val isNum = pattern.matcher(str)
- return isNum.matches()
- }
-
- fun showFormatAmount(preHint: String, amount: Int): String {
- return String.format("%s: %.02f元", preHint, amount / 100.0f)
- }
-
- /*优化a811扫码*/
- fun writeLinnuuxParams() {
- try {
- val fos = FileOutputStream("/sys/module/gc0308/parameters/exposure")
- fos.write("20".toByteArray())
- fos.close()
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
-
- /**
- * 判断服务是否开启
- *
- * @param mContext
- * @param serviceName
- * @return
- */
- fun isServiceWork(mContext: Context, serviceName: String): Boolean {
- val myAM = mContext
- .getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
- val myList = myAM.getRunningServices(40)
- if (myList.size <= 0) {
- return false
- }
- for (i in myList.indices) {
- val mName = myList[i].service.className.toString()
- if (mName == serviceName) {
- return true
- }
- }
- return false
- }
-
- fun getExceptionStack(e: Exception?): String {
- if (e == null) {
- return "null"
- }
- val sw = StringWriter()
- val pw = PrintWriter(sw)
- e.printStackTrace(pw)
- return sw.toString()
- }
-
- /**
- * get App versionName
- *
- * @param context
- * @return
- */
- fun getVersionName(context: Context): String {
- return try {
- val packageManager = context.packageManager
- val packageInfo = packageManager.getPackageInfo(context.packageName, 0)
- packageInfo.versionName
- } catch (e: PackageManager.NameNotFoundException) {
- e.printStackTrace()
- "error:" + e.message
- }
-
- }
-
- /**
- * 跳转网络设置页;
- */
- fun startNetSetting(context: Context) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- context.startActivity(Intent(Settings.ACTION_SETTINGS))
- } else {
- context.startActivity(Intent(Settings.ACTION_WIRELESS_SETTINGS))
- }
- }
-
- /**
- * 唤醒屏幕
- */
- fun acquireWakeLock(context: Context) {
- /*FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
- ACQUIRE_CAUSES_WAKEUP:强制使屏幕亮起,这种锁主要针对一些必须通知用户的操作.
- ON_AFTER_RELEASE:当锁被释放时,保持屏幕亮起一段时间*/
- try {
- val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager
- @SuppressLint("InvalidWakeLockTag") val wakeLock = pm.newWakeLock(
- PowerManager.ON_AFTER_RELEASE
- or PowerManager.ACQUIRE_CAUSES_WAKEUP
- or PowerManager.FULL_WAKE_LOCK, "Tag"
- )
- wakeLock.acquire()
- wakeLock.release()
- } catch (ex: Exception) {
- ex.printStackTrace()
- }
-
- }
-
- fun getPasswordStar(len: Int): String {
- return when (len) {
- 0 -> " "
- 1 -> "*"
- 2 -> "**"
- 3 -> "***"
- 4 -> "****"
- 5 -> "*****"
- 6 -> "******"
- else -> " "
- }
- }
-
- /**
- * @param activity
- * @param brightness [1-255]
- * @desc 根据亮度值修改当前window亮度
- */
- fun setAppBrightness(activity: Activity, brightness: Int) {
- val window = activity.window
- val lp = window.attributes
- if (brightness == -1) {
- if (lp.screenBrightness < 0) {
- /**
- * 已经是正常亮度
- */
- return
- }
- lp.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE
- } else {
- if (lp.screenBrightness > 0) {
- /**
- * 已经屏保亮度
- */
- return
- }
-// stopAutoBrightness(activity)
- lp.screenBrightness = (if (brightness <= 0) 1 else brightness) / 255f
- }
- window.attributes = lp
- /**
- * 生效?
- */
-// getActivityBrightness(activity)
- }
-
- /**
- * 获取当前activity的屏幕亮度
- *
- * @param activity 当前的activity对象
- * @return 亮度值范围为0-0.1f,如果为-1.0,则亮度与全局同步。
- */
- private fun getActivityBrightness(activity: Activity): Float {
- val localWindow = activity.window
- val params = localWindow.attributes
- return params.screenBrightness
- }
-
- /**
- * 判断是否开启了自动亮度调节
- * *
- * * @param aContext
- * * @return
- *
- */
- private fun isAutoBrightness(aContentResolver: ContentResolver): Boolean {
- try {
- return Settings.System.getInt(
- aContentResolver,
- Settings.System.SCREEN_BRIGHTNESS_MODE
- ) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
- } catch (e: Settings.SettingNotFoundException) {
- e.printStackTrace()
- }
-
- return false
- }
-
- /**
- * 停止自动亮度调节
- *
- * @param activity
- */
- private fun stopAutoBrightness(activity: Activity) {
- Settings.System.putInt(
- activity.contentResolver,
- Settings.System.SCREEN_BRIGHTNESS_MODE,
- Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
- )
- }
-
- /**
- * 开启亮度自动调节
- *
- * @param activity
- */
- private fun startAutoBrightness(activity: Activity) {
- Settings.System.putInt(
- activity.contentResolver,
- Settings.System.SCREEN_BRIGHTNESS_MODE,
- Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
- )
- }
+@file:Suppress("DEPRECATION")
+
+package com.supwisdom.utils
+
+import android.annotation.SuppressLint
+import android.app.Activity
+import android.app.ActivityManager
+import android.content.ContentResolver
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.net.Uri
+import android.os.Build
+import android.os.PowerManager
+import android.provider.Settings
+import android.view.WindowManager
+import android.widget.EditText
+import com.supwisdom.activities.SPApplication
+import okhttp3.internal.and
+import java.io.File
+import java.io.FileOutputStream
+import java.io.PrintWriter
+import java.io.StringWriter
+import java.net.NetworkInterface
+import java.util.*
+import java.util.regex.Pattern
+
+/**
+ * @author zzq
+ * @date 2018/5/9.
+ * @version 1.0.1
+ * @desc 公共类
+ */
+object CommonUtil {
+ fun doSleep(ms: Int) {
+ try {
+ Thread.sleep(ms.toLong())
+ } catch (e: InterruptedException) {
+ e.printStackTrace()
+ }
+ }
+
+ fun getEditView(et: EditText): String {
+ return et.text.toString().trim { it <= ' ' }.replace(" ", "")
+ }
+
+ fun getCommunicateTime(): Int {
+ var commTime = 2
+ val sysRecord = SPApplication.getInstance().getPos().getSysPara()
+ if (sysRecord != null) {
+ commTime = sysRecord.commTime
+ if (commTime == 0) {
+ commTime = 2
+ }
+ }
+ return commTime
+ }
+
+ fun getSerialNumber(): String {
+ try {
+ val c = Class.forName("android.os.SystemProperties")
+ val get = c.getMethod("get", String::class.java)
+ return get.invoke(c, "ro.product.firmware") as String
+ } catch (ex: Exception) {
+ ex.printStackTrace()
+ }
+
+ return ""
+ }
+
+ fun YuanToFen(yuan: Double): Int {
+ return Math.round(yuan * 100).toInt()
+ }
+
+ fun upgrade(context: Context, filename: String) {
+ val intent = Intent(Intent.ACTION_VIEW)
+ val uri = Uri.fromFile(File(filename))
+ intent.setDataAndType(uri, "application/vnd.android.package-archive")
+ (context as Activity).startActivityForResult(intent, 0)
+ }
+
+ fun isNumeric(str: String): Boolean {
+ val pattern = Pattern.compile("[0-9]*")
+ val isNum = pattern.matcher(str)
+ return isNum.matches()
+ }
+
+ fun showFormatAmount(preHint: String, amount: Int): String {
+ return String.format("%s: %.02f元", preHint, amount / 100.0f)
+ }
+
+ /*优化a811扫码*/
+ fun writeLinnuuxParams() {
+ try {
+ val fos = FileOutputStream("/sys/module/gc0308/parameters/exposure")
+ fos.write("20".toByteArray())
+ fos.close()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ /**
+ * 判断服务是否开启
+ *
+ * @param mContext
+ * @param serviceName
+ * @return
+ */
+ fun isServiceWork(mContext: Context, serviceName: String): Boolean {
+ val myAM = mContext
+ .getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
+ val myList = myAM.getRunningServices(40)
+ if (myList.size <= 0) {
+ return false
+ }
+ for (i in myList.indices) {
+ val mName = myList[i].service.className.toString()
+ if (mName == serviceName) {
+ return true
+ }
+ }
+ return false
+ }
+
+ fun getExceptionStack(e: Exception?): String {
+ if (e == null) {
+ return "null"
+ }
+ val sw = StringWriter()
+ val pw = PrintWriter(sw)
+ e.printStackTrace(pw)
+ return sw.toString()
+ }
+
+ /**
+ * get App versionName
+ *
+ * @param context
+ * @return
+ */
+ fun getVersionName(context: Context): String {
+ return try {
+ val packageManager = context.packageManager
+ val packageInfo = packageManager.getPackageInfo(context.packageName, 0)
+ packageInfo.versionName
+ } catch (e: PackageManager.NameNotFoundException) {
+ e.printStackTrace()
+ "error:" + e.message
+ }
+
+ }
+
+ /**
+ * 跳转网络设置页;
+ */
+ fun startNetSetting(context: Context) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ context.startActivity(Intent(Settings.ACTION_SETTINGS))
+ } else {
+ context.startActivity(Intent(Settings.ACTION_WIRELESS_SETTINGS))
+ }
+ }
+
+ /**
+ * 唤醒屏幕
+ */
+ fun acquireWakeLock(context: Context) {
+ /*FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
+ ACQUIRE_CAUSES_WAKEUP:强制使屏幕亮起,这种锁主要针对一些必须通知用户的操作.
+ ON_AFTER_RELEASE:当锁被释放时,保持屏幕亮起一段时间*/
+ try {
+ val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager
+ @SuppressLint("InvalidWakeLockTag") val wakeLock = pm.newWakeLock(
+ PowerManager.ON_AFTER_RELEASE
+ or PowerManager.ACQUIRE_CAUSES_WAKEUP
+ or PowerManager.FULL_WAKE_LOCK, "Tag"
+ )
+ wakeLock.acquire()
+ wakeLock.release()
+ } catch (ex: Exception) {
+ ex.printStackTrace()
+ }
+
+ }
+
+ fun getPasswordStar(len: Int): String {
+ return when (len) {
+ 0 -> " "
+ 1 -> "*"
+ 2 -> "**"
+ 3 -> "***"
+ 4 -> "****"
+ 5 -> "*****"
+ 6 -> "******"
+ else -> " "
+ }
+ }
+
+ /**
+ * @param activity
+ * @param brightness [1-255]
+ * @desc 根据亮度值修改当前window亮度
+ */
+ fun setAppBrightness(activity: Activity, brightness: Int) {
+ val window = activity.window
+ val lp = window.attributes
+ if (brightness == -1) {
+ if (lp.screenBrightness < 0) {
+ /**
+ * 已经是正常亮度
+ */
+ return
+ }
+ lp.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE
+ } else {
+ if (lp.screenBrightness > 0) {
+ /**
+ * 已经屏保亮度
+ */
+ return
+ }
+// stopAutoBrightness(activity)
+ lp.screenBrightness = (if (brightness <= 0) 1 else brightness) / 255f
+ }
+ window.attributes = lp
+ /**
+ * 生效?
+ */
+// getActivityBrightness(activity)
+ }
+
+ /**
+ * 获取当前activity的屏幕亮度
+ *
+ * @param activity 当前的activity对象
+ * @return 亮度值范围为0-0.1f,如果为-1.0,则亮度与全局同步。
+ */
+ private fun getActivityBrightness(activity: Activity): Float {
+ val localWindow = activity.window
+ val params = localWindow.attributes
+ return params.screenBrightness
+ }
+
+ /**
+ * 判断是否开启了自动亮度调节
+ * *
+ * * @param aContext
+ * * @return
+ *
+ */
+ private fun isAutoBrightness(aContentResolver: ContentResolver): Boolean {
+ try {
+ return Settings.System.getInt(
+ aContentResolver,
+ Settings.System.SCREEN_BRIGHTNESS_MODE
+ ) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
+ } catch (e: Settings.SettingNotFoundException) {
+ e.printStackTrace()
+ }
+
+ return false
+ }
+
+ /**
+ * 停止自动亮度调节
+ *
+ * @param activity
+ */
+ private fun stopAutoBrightness(activity: Activity) {
+ Settings.System.putInt(
+ activity.contentResolver,
+ Settings.System.SCREEN_BRIGHTNESS_MODE,
+ Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
+ )
+ }
+
+ /**
+ * 开启亮度自动调节
+ *
+ * @param activity
+ */
+ private fun startAutoBrightness(activity: Activity) {
+ Settings.System.putInt(
+ activity.contentResolver,
+ Settings.System.SCREEN_BRIGHTNESS_MODE,
+ Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
+ )
+ }
+
+ fun getHardwareAddress(): String {
+ try {
+ val all: List<NetworkInterface> =
+ Collections.list(NetworkInterface.getNetworkInterfaces())
+ for (nif in all) {
+ if (!nif.name.equals("eth0", ignoreCase = true)) {
+ continue
+ }
+ val macBytes = nif.hardwareAddress ?: return ""
+ val sb = StringBuilder()
+ for (b in macBytes) {
+ var hex = Integer.toHexString(b and 0xFF)
+ if (hex.length == 1) hex = "0$hex"
+ sb.append("$hex:")
+ }
+ if (sb.isNotEmpty()) {
+ sb.deleteCharAt(sb.length - 1)
+ }
+ return sb.toString()
+ }
+ } catch (ex: java.lang.Exception) {
+ }
+ return ""
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/CryptUtil.kt b/app/src/main/java/com/supwisdom/utils/CryptUtil.kt
index b3d7f97..f1022e7 100644
--- a/app/src/main/java/com/supwisdom/utils/CryptUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/CryptUtil.kt
@@ -1,142 +1,142 @@
-package com.supwisdom.utils
-
-import java.io.InputStream
-import java.io.UnsupportedEncodingException
-import java.security.InvalidKeyException
-import java.security.MessageDigest
-import java.security.NoSuchAlgorithmException
-import javax.crypto.Mac
-import javax.crypto.spec.SecretKeySpec
-
-/**
- ** create by zzq on 2019/7/24
- ** @desc
- **/
-object CryptUtil {
- fun HASH256(text: String): String? {
- return algorithm2(text, "SHA-256", true)
- }
-
- fun HASH256(fis: InputStream): String? {
- return algorithm(fis, "SHA-256")
- }
-
- fun HASH256(fis: InputStream, extData: String): String? {
- return algorithm(fis, "SHA-256", extData)
- }
-
- fun HASH512(text: String): String? {
- return algorithm2(text, "SHA-512", true)
- }
-
- fun MD5(text: String): String? {
- return algorithm2(text, "MD5", false)
- }
-
- fun HMACSHA1(data: String, key: String): String? {
- try {
- val algorithm = "HmacSHA1"
- 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
- }
-
- 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 {
- //创建具有指定算法名称的信息摘要
- val md = MessageDigest.getInstance(algorithm)
- //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
- val results = md.digest(text.toByteArray(charset("UTF-8")))
- //将得到的字节数组变成字符串返回
- val resultString = results.encodeHex()
- return if (isUpperCase) {
- resultString.toUpperCase()
- } else {
- resultString.toLowerCase()
- }
- } catch (ex: NoSuchAlgorithmException) {
- ex.printStackTrace()
- } catch (ex: UnsupportedEncodingException) {
- ex.printStackTrace()
- }
- }
- return null
- }
-
- private fun algorithm(fis: InputStream, algorithm: String): String? {
- try {
- //拿到一个MD5转换器,如果想使用SHA-1或SHA-256,则传入SHA-1,SHA-256
- val md = MessageDigest.getInstance(algorithm)
-
- //分多次将一个文件读入,对于大型文件而言,比较推荐这种方式,占用内存比较少。
- val buffer = ByteArray(1024)
- var length: Int
- while (true) {
- length = fis.read(buffer, 0, 1024)
- if (length < 0) {
- break
- }
- md.update(buffer, 0, length)
- }
- fis.close()
- //转换并返回包含16个元素字节数组,返回数值范围为-128到127
- return md.digest().encodeHex()
- } catch (e: Exception) {
- e.printStackTrace()
- return null
- }
-
- }
-
- private fun algorithm(fis: InputStream, algorithm: String, extData: String): String? {
- try {
- //拿到一个MD5转换器,如果想使用SHA-1或SHA-256,则传入SHA-1,SHA-256
- val md = MessageDigest.getInstance(algorithm)
-
- //分多次将一个文件读入,对于大型文件而言,比较推荐这种方式,占用内存比较少。
- val buffer = ByteArray(1024)
- var length: Int
- while (true) {
- length = fis.read(buffer, 0, 1024)
- if (length < 0) {
- break
- }
- md.update(buffer, 0, length)
- }
- fis.close()
- md.update(extData.toByteArray(charset("UTF-8")))
-
- //转换并返回包含16个元素字节数组,返回数值范围为-128到127
- return md.digest().encodeHex()
- } catch (e: Exception) {
- e.printStackTrace()
- return null
- }
-
- }
+package com.supwisdom.utils
+
+import java.io.InputStream
+import java.io.UnsupportedEncodingException
+import java.security.InvalidKeyException
+import java.security.MessageDigest
+import java.security.NoSuchAlgorithmException
+import javax.crypto.Mac
+import javax.crypto.spec.SecretKeySpec
+
+/**
+ ** create by zzq on 2019/7/24
+ ** @desc
+ **/
+object CryptUtil {
+ fun HASH256(text: String): String {
+ return algorithm2(text, "SHA-256", true)
+ }
+
+ fun HASH256(fis: InputStream): String {
+ return algorithm(fis, "SHA-256")
+ }
+
+ fun HASH256(fis: InputStream, extData: String): String {
+ return algorithm(fis, "SHA-256", extData)
+ }
+
+ fun HASH512(text: String): String {
+ return algorithm2(text, "SHA-512", true)
+ }
+
+ fun MD5(text: String): String {
+ return algorithm2(text, "MD5", false)
+ }
+
+ fun HMACSHA1(data: String, key: String): String {
+ try {
+ val algorithm = "HmacSHA1"
+ 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 ""
+ }
+
+ 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 ""
+ }
+
+ private fun algorithm2(text: String?, algorithm: String, isUpperCase: Boolean): String {
+ if (text != null && text.isNotEmpty()) {
+ try {
+ //创建具有指定算法名称的信息摘要
+ val md = MessageDigest.getInstance(algorithm)
+ //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
+ val results = md.digest(text.toByteArray(charset("UTF-8")))
+ //将得到的字节数组变成字符串返回
+ val resultString = results.encodeHex()
+ return if (isUpperCase) {
+ resultString.toUpperCase()
+ } else {
+ resultString.toLowerCase()
+ }
+ } catch (ex: NoSuchAlgorithmException) {
+ ex.printStackTrace()
+ } catch (ex: UnsupportedEncodingException) {
+ ex.printStackTrace()
+ }
+ }
+ return ""
+ }
+
+ private fun algorithm(fis: InputStream, algorithm: String): String {
+ try {
+ //拿到一个MD5转换器,如果想使用SHA-1或SHA-256,则传入SHA-1,SHA-256
+ val md = MessageDigest.getInstance(algorithm)
+
+ //分多次将一个文件读入,对于大型文件而言,比较推荐这种方式,占用内存比较少。
+ val buffer = ByteArray(1024)
+ var length: Int
+ while (true) {
+ length = fis.read(buffer, 0, 1024)
+ if (length < 0) {
+ break
+ }
+ md.update(buffer, 0, length)
+ }
+ fis.close()
+ //转换并返回包含16个元素字节数组,返回数值范围为-128到127
+ return md.digest().encodeHex()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ return ""
+ }
+
+ }
+
+ private fun algorithm(fis: InputStream, algorithm: String, extData: String): String {
+ try {
+ //拿到一个MD5转换器,如果想使用SHA-1或SHA-256,则传入SHA-1,SHA-256
+ val md = MessageDigest.getInstance(algorithm)
+
+ //分多次将一个文件读入,对于大型文件而言,比较推荐这种方式,占用内存比较少。
+ val buffer = ByteArray(1024)
+ var length: Int
+ while (true) {
+ length = fis.read(buffer, 0, 1024)
+ if (length < 0) {
+ break
+ }
+ md.update(buffer, 0, length)
+ }
+ fis.close()
+ md.update(extData.toByteArray(charset("UTF-8")))
+
+ //转换并返回包含16个元素字节数组,返回数值范围为-128到127
+ return md.digest().encodeHex()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ return ""
+ }
+
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/FileUtil.kt b/app/src/main/java/com/supwisdom/utils/FileUtil.kt
index 103d889..aa31722 100644
--- a/app/src/main/java/com/supwisdom/utils/FileUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/FileUtil.kt
@@ -1,142 +1,212 @@
-package com.supwisdom.utils
-
-import android.os.Environment
-import java.io.*
-
-/**
- ** create by zzq on 2019/7/23
- ** @desc
- **/
-object FileUtil {
- private val ROOT_DIR = "/a711/pos/"
- private val ROOT_PRIVATE_DIR = "/supwisdom/"
- private val CACHE_FILE_DIR = ROOT_DIR + "cache/"
- private val CRASH_FILE_DIR = ROOT_DIR + "crash/"
- private val CRASH_FILE_PRE = "crash-"
- private val LOG_FILE_DIR = ROOT_DIR + "log/"
- private val LOG_FILE_PRE = "log-"
- private val DTL_FILE_DIR = ROOT_DIR + "dtl/"
- private val DTL_FILE_PRE = "dtl-"
-
- fun getUpdateFile(fileName: String): File? {
- return createFile(CACHE_FILE_DIR, fileName)
- }
-
- fun getCfgFile(fileName: String): File? {
- return createFile(ROOT_PRIVATE_DIR, fileName)
- }
-
- fun getCfgFileStream(fileName: String): InputStream? {
- if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
- val rootFile = File(Environment.getExternalStorageDirectory().toString() + ROOT_PRIVATE_DIR)
- if (!rootFile.exists()) {
- return null
- }
- val retFile = File(rootFile, fileName)
- if (retFile.exists()) {
- try {
- return FileInputStream(retFile)
- } catch (e: FileNotFoundException) {
- e.printStackTrace()
- }
-
- }
- }
- return null
- }
-
- fun removeDtlFile(beforeday: Int) {
- removeFile(DTL_FILE_DIR, DTL_FILE_PRE, beforeday)
- }
-
- fun removeLogFile(beforeday: Int) {
- removeFile(LOG_FILE_DIR, LOG_FILE_PRE, beforeday)
- }
-
- fun removeCrashFile(beforeday: Int) {
- removeFile(CRASH_FILE_DIR, CRASH_FILE_PRE, beforeday)
- }
-
-
- fun writeDtlFile(msg: String) {
- val pathfile = DTL_FILE_DIR + DTL_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
- writeFile(pathfile, msg, true)
- }
-
- fun writeCrashFile(msg: String) {
- val pathfile = CRASH_FILE_DIR + CRASH_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
- writeFile(pathfile, msg, true)
- }
-
- fun writeLogFile(msg: String) {
- val pathfile = LOG_FILE_DIR + LOG_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
- writeFile(pathfile, msg, true)
- }
-
- private fun writeFile(targetPath: String, msg: String, append: Boolean) {
- if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
- val targetFile = File(Environment.getExternalStorageDirectory().toString() + targetPath)
- if (!targetFile.parentFile.exists()) {
- targetFile.parentFile.mkdirs()
- }
- try {
- val osw = OutputStreamWriter(
- FileOutputStream(targetFile, append), "utf-8"
- )
- try {
- osw.write(msg)
- osw.write("</br>\n")
- osw.flush()
- osw.close()
- } catch (e: IOException) {
- e.printStackTrace()
- }
-
- } catch (e1: UnsupportedEncodingException) {
- e1.printStackTrace()
- } catch (e1: FileNotFoundException) {
- e1.printStackTrace()
- }
-
- }
- }
-
- private fun removeFile(targetPath: String, prefile: String, beforeday: Int) {
- if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState()) {
- val rootFile = File(Environment.getExternalStorageDirectory().toString() + targetPath)
- if (!rootFile.exists()) {
- return
- }
- val logname = prefile + DateUtil.getDayDateNoFormatBefore(beforeday) + ".txt"
- val files = rootFile.listFiles()
- for (file in files!!) {
- val fullfilename = file.absolutePath
- val filename = fullfilename.substring(fullfilename.lastIndexOf('/') + 1)
- if (filename.startsWith(prefile) && filename.endsWith(".txt")) {
- if (filename.compareTo(logname) < 0) {
- file.delete()
- }
- }
- }
- }
- }
-
- private fun createFile(path: String, fileName: String): File? {
- if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
- val rootFile = File(Environment.getExternalStorageDirectory().toString() + path)
- if (!rootFile.exists()) {
- rootFile.mkdirs()
- }
- val retFile = File(rootFile, fileName)
- if (!retFile.exists()) {
- try {
- retFile.createNewFile()
- } catch (e: IOException) {
- return null
- }
- }
- return retFile
- }
- return null
- }
+package com.supwisdom.utils
+
+import android.os.Environment
+import java.io.*
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+object FileUtil {
+ private val ROOT_DIR = "/a711/pos/"
+ private val ROOT_PRIVATE_DIR = "/supwisdom/"
+ private val CACHE_FILE_DIR = ROOT_DIR + "cache/"
+ private val CRASH_FILE_DIR = ROOT_DIR + "crash/"
+ private val CRASH_FILE_PRE = "crash-"
+ private val LOG_FILE_DIR = ROOT_DIR + "log/"
+ private val LOG_FILE_PRE = "log-"
+ private val DTL_FILE_DIR = ROOT_DIR + "dtl/"
+ private val DTL_FILE_PRE = "dtl-"
+
+ fun getUpdateFile(fileName: String): File? {
+ return createFile(CACHE_FILE_DIR, fileName)
+ }
+
+ fun getCfgFile(fileName: String): File? {
+ return createFile(ROOT_PRIVATE_DIR, fileName)
+ }
+
+ fun getCfgFileStream(fileName: String): InputStream? {
+ if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
+ val rootFile = File(
+ Environment.getExternalStorageDirectory().toString() + ROOT_PRIVATE_DIR
+ )
+ if (!rootFile.exists()) {
+ return null
+ }
+ val retFile = File(rootFile, fileName)
+ if (retFile.exists()) {
+ try {
+ return FileInputStream(retFile)
+ } catch (e: FileNotFoundException) {
+ e.printStackTrace()
+ }
+
+ }
+ }
+ return null
+ }
+
+ fun removeDtlFile(beforeday: Int) {
+ removeFile(DTL_FILE_DIR, DTL_FILE_PRE, beforeday)
+ }
+
+ fun removeLogFile(beforeday: Int) {
+ removeFile(LOG_FILE_DIR, LOG_FILE_PRE, beforeday)
+ }
+
+ fun removeCrashFile(beforeday: Int) {
+ removeFile(CRASH_FILE_DIR, CRASH_FILE_PRE, beforeday)
+ }
+
+
+ fun writeDtlFile(msg: String) {
+ val pathfile = DTL_FILE_DIR + DTL_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
+ writeFile(pathfile, msg, true)
+ }
+
+ fun writeCrashFile(msg: String) {
+ val pathfile = CRASH_FILE_DIR + CRASH_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
+ writeFile(pathfile, msg, true)
+ }
+
+ fun writeLogFile(msg: String) {
+ val pathfile = LOG_FILE_DIR + LOG_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
+ writeFile(pathfile, msg, true)
+ }
+
+ private fun writeFile(targetPath: String, msg: String, append: Boolean) {
+ if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
+ val targetFile = File(Environment.getExternalStorageDirectory().toString() + targetPath)
+ if (!targetFile.parentFile.exists()) {
+ targetFile.parentFile.mkdirs()
+ }
+ try {
+ val osw = OutputStreamWriter(
+ FileOutputStream(targetFile, append), "utf-8"
+ )
+ try {
+ osw.write(msg)
+ osw.write("</br>\n")
+ osw.flush()
+ osw.close()
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+
+ } catch (e1: UnsupportedEncodingException) {
+ e1.printStackTrace()
+ } catch (e1: FileNotFoundException) {
+ e1.printStackTrace()
+ }
+
+ }
+ }
+
+ private fun removeFile(targetPath: String, prefile: String, beforeday: Int) {
+ if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState()) {
+ val rootFile = File(Environment.getExternalStorageDirectory().toString() + targetPath)
+ if (!rootFile.exists()) {
+ return
+ }
+ val logname = prefile + DateUtil.getDayDateNoFormatBefore(beforeday) + ".txt"
+ val files = rootFile.listFiles()
+ for (file in files!!) {
+ val fullfilename = file.absolutePath
+ val filename = fullfilename.substring(fullfilename.lastIndexOf('/') + 1)
+ if (filename.startsWith(prefile) && filename.endsWith(".txt")) {
+ if (filename.compareTo(logname) < 0) {
+ file.delete()
+ }
+ }
+ }
+ }
+ }
+
+ private fun createFile(path: String, fileName: String): File? {
+ if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState()) {
+ val rootFile = File(Environment.getExternalStorageDirectory().toString() + path)
+ if (!rootFile.exists()) {
+ rootFile.mkdirs()
+ }
+ val retFile = File(rootFile, fileName)
+ if (!retFile.exists()) {
+ try {
+ retFile.createNewFile()
+ } catch (e: IOException) {
+ return null
+ }
+ }
+ return retFile
+ }
+ return null
+ }
+
+ fun getSynoLicensePath(): String? {
+ if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState()) {
+ val path =
+ Environment.getExternalStorageDirectory().toString() + PublicDef.PATH_SHENG_YUAN
+ val sdfile = File(path)
+ if (!sdfile.exists()) {
+ sdfile.mkdirs()
+ }
+ return path
+ }
+ return null
+ }
+
+ fun readSynoLicenseFile(fullpath: String?): ByteArray? {
+ if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState()) {
+ val file = File(fullpath)
+ if (!file.parentFile.exists()) {
+ return null
+ }
+ try {
+ val isr = FileInputStream(file)
+ try {
+ val os = ByteArrayOutputStream()
+ val buf = ByteArray(1024)
+ var size = 0
+ while (isr.read(buf).also { size = it } != -1) {
+ os.write(buf, 0, size)
+ }
+ return os.toByteArray()
+ } catch (e: IOException) {
+ e.printStackTrace()
+ } finally {
+ try {
+ isr.close()
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+ }
+ } catch (e1: FileNotFoundException) {
+ e1.printStackTrace()
+ }
+ }
+ return null
+ }
+
+ fun writeSynoLicenseFile(fullpath: String, license: ByteArray): Boolean {
+ if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState()) {
+ val file = File(fullpath)
+ if (!file.parentFile.exists()) {
+ file.parentFile.mkdirs()
+ }
+ try {
+ val fos = FileOutputStream(file, false)
+ try {
+ fos.write(license)
+ fos.flush()
+ fos.close()
+ return true
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+ } catch (e1: FileNotFoundException) {
+ e1.printStackTrace()
+ }
+ }
+ return false
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/PublicDef.kt b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
index 18c7074..2ddbf96 100644
--- a/app/src/main/java/com/supwisdom/utils/PublicDef.kt
+++ b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
@@ -1,96 +1,106 @@
-package com.supwisdom.utils
-
-/**
- * @author zzq
- * @date 2018/4/26.
- * @version 1.0.1
- * @desc APP module常量定义
- */
-object PublicDef {
- /**
- * 错误码
- */
- const val SUCCESS = 0
- const val ERROR = 1
- /**
- * 商户默认密码 111111
- * 维护默认密码 914387
- */
- const val PASSWD_SHOP_DEFAULT = "111111"
- const val PASSWD_ADMIN_DEFAULT = "914387"
-
- /**************************************************************/
- /*************************handler 状态码***********************/
- const val MSG_CARD_PAYING = 10
- const val MSG_CARD_READ_AGAIN = 11
- const val MSG_CARD_PAY_FAIL = 12
- const val MSG_CARD_PAY_SUC = 13
- const val MSG_CARD_PAY_QUERY = 14
- const val MSG_CARD_REVERSE_FAIL = 15
- const val MSG_CARD_REVERSE_SUC = 16
- const val MSG_USER_INFO_SHOW = 17
- const val MSG_USER_INFO_CLEAR = 18
- const val MSG_LINK_STATUS = 19
- const val MSG_PAYING_QUERY = 20
- const val MSG_PAYING_INTERRUPT = 21
- const val MSG_SCREEN_SAVER = 22
- /*************************不能重复*****************************/
- /**
- * 屏保亮度
- */
- const val SCREEN_SAVER_BRIGHTNESS = 1
- const val SCREEN_NORMAL_BRIGHTNESS = -1
- const val SCREEN_SAVER_GAP: Long = 30 * 60 * 1000
- /**
- * 卡消费标志(1 byte)
- */
- /*high 4 bit*/
- const val TRANSFLAG_NORMAL_CONSUME = 0x80 // 正常消费
- const val TRANSFLAG_MEALER_CONSUME = 0xC0 // 搭伙
- const val TRANSFLAG_DISCNT_CONSUME = 0xA0 // 折扣
- const val TRANSFLAG_REVS_ML_CONSUME = 0x40 //冲正带搭伙
- const val TRANSFLAG_REVS_DST_CONSUME = 0x20 // 冲正带折扣
- const val TRANSFLAG_REVERSE_AUTO_CONSUME = 0x10 // 自动撤销 (0x00 手动冲正)
- const val TRANSFLAG_REVERSE_CONSUME = 0x00 //&0x80 最高位0标识冲正(统一标识)
- /*low 4 bit*/
- const val TRANSFLAG_WRITE_CARD_SUCCESS = 0x01 // 写卡成功
- const val TRANSFLAG_WRITE_CARD_HALFAWAY = 0x02 // 中途拔卡
- const val TRANSFLAG_UNWRITE_CARD = 0x03 // 未写卡
- const val TRANSFLAG_PWD_CONSUME = 0x04 // 密码消费
-
- const val BG_SERVICE_NAME = "com.supwisdom.service.BackgroundTaskService"
-
- /**
- * Toast show
- */
- const val TOAST_SHOW_CRY = 1
- const val TOAST_SHOW_SMILE = 2
- const val TOAST_SHOW_DOUBT = 3
-
- const val DIALOG_TYPE_BIG_PICTURE = 1
- const val DIALOG_TYPE_PURCHASE = 2
- const val DIALOG_TYPE_PASSWORD = 3
- const val DIALOG_TYPE_SELECT_ORDER = 4
- const val DIALOG_TYPE_DPS_CONFIRM = 5
- const val DIALOG_TYPE_SCAN_RVS_CONFIRM = 6
- const val DIALOG_TYPE_ORDINARY_CONSUME = 7
- const val DIALOG_TYPE_DEPOSIT = 8
- const val DIALOG_TYPE_NSD_CONFIG = 9
-
- /**
- * 本地全局控制参数
- */
- const val CONTROL_FIXAMT = "fixamt"
- const val CONTROL_OFFLINE_DAY_DISABLE = "offdaydisable"
- const val CONTROL_DEBUG_ENABLE = "debugenable"
-
- /**
- * 消费冲正时限
- */
- const val REVERSE_MS_GAP = 600000
- /**
- *
- */
- const val APP_ID = "200001"
- const val APP_SECRET = "dc1d26c0d43e442588092c8d45c21bce"
+package com.supwisdom.utils
+
+/**
+ * @author zzq
+ * @date 2018/4/26.
+ * @version 1.0.1
+ * @desc APP module常量定义
+ */
+object PublicDef {
+ /**
+ * 错误码
+ */
+ const val SUCCESS = 0
+ const val ERROR = 1
+
+ /**
+ * 商户默认密码 111111
+ * 维护默认密码 914387
+ */
+ const val PASSWD_SHOP_DEFAULT = "111111"
+ const val PASSWD_ADMIN_DEFAULT = "914387"
+
+ /**************************************************************/
+ /*************************handler 状态码***********************/
+ const val MSG_CARD_PAYING = 10
+ const val MSG_CARD_READ_AGAIN = 11
+ const val MSG_CARD_PAY_FAIL = 12
+ const val MSG_CARD_PAY_SUC = 13
+ const val MSG_CARD_PAY_QUERY = 14
+ const val MSG_CARD_REVERSE_FAIL = 15
+ const val MSG_CARD_REVERSE_SUC = 16
+ const val MSG_USER_INFO_SHOW = 17
+ const val MSG_USER_INFO_CLEAR = 18
+ const val MSG_LINK_STATUS = 19
+ const val MSG_PAYING_QUERY = 20
+ const val MSG_PAYING_INTERRUPT = 21
+ const val MSG_SCREEN_SAVER = 22
+ /*************************不能重复*****************************/
+ /**
+ * 屏保亮度
+ */
+ const val SCREEN_SAVER_BRIGHTNESS = 1
+ const val SCREEN_NORMAL_BRIGHTNESS = -1
+ const val SCREEN_SAVER_GAP: Long = 30 * 60 * 1000
+
+ /**
+ * 卡消费标志(1 byte)
+ */
+ /*high 4 bit*/
+ const val TRANSFLAG_NORMAL_CONSUME = 0x80 // 正常消费
+ const val TRANSFLAG_MEALER_CONSUME = 0xC0 // 搭伙
+ const val TRANSFLAG_DISCNT_CONSUME = 0xA0 // 折扣
+ const val TRANSFLAG_REVS_ML_CONSUME = 0x40 //冲正带搭伙
+ const val TRANSFLAG_REVS_DST_CONSUME = 0x20 // 冲正带折扣
+ const val TRANSFLAG_REVERSE_AUTO_CONSUME = 0x10 // 自动撤销 (0x00 手动冲正)
+ const val TRANSFLAG_REVERSE_CONSUME = 0x00 //&0x80 最高位0标识冲正(统一标识)
+
+ /*low 4 bit*/
+ const val TRANSFLAG_WRITE_CARD_SUCCESS = 0x01 // 写卡成功
+ const val TRANSFLAG_WRITE_CARD_HALFAWAY = 0x02 // 中途拔卡
+ const val TRANSFLAG_UNWRITE_CARD = 0x03 // 未写卡
+ const val TRANSFLAG_PWD_CONSUME = 0x04 // 密码消费
+
+ const val BG_SERVICE_NAME = "com.supwisdom.service.BackgroundTaskService"
+
+ /**
+ * Toast show
+ */
+ const val TOAST_SHOW_CRY = 1
+ const val TOAST_SHOW_SMILE = 2
+ const val TOAST_SHOW_DOUBT = 3
+
+ const val DIALOG_TYPE_BIG_PICTURE = 1
+ const val DIALOG_TYPE_PURCHASE = 2
+ const val DIALOG_TYPE_PASSWORD = 3
+ const val DIALOG_TYPE_SELECT_ORDER = 4
+ const val DIALOG_TYPE_DPS_CONFIRM = 5
+ const val DIALOG_TYPE_SCAN_RVS_CONFIRM = 6
+ const val DIALOG_TYPE_ORDINARY_CONSUME = 7
+ const val DIALOG_TYPE_DEPOSIT = 8
+ const val DIALOG_TYPE_NSD_CONFIG = 9
+
+ const val CODE_SAME_FORBID_TIME: Long = 10 * 1000
+ const val CAMERA_FIX_PAY_PERIOD: Long = 30 * 60 * 1000
+
+ /**
+ * 本地全局控制参数
+ */
+ const val CONTROL_FIXAMT = "fixamt"
+ const val CONTROL_OFFLINE_DAY_DISABLE = "offdaydisable"
+ const val CONTROL_DEBUG_ENABLE = "debugenable"
+ const val CONTROL_SYNOCODE_ACTIVE = "synocodeactive"
+
+ /**
+ * 消费冲正时限
+ */
+ const val REVERSE_MS_GAP = 600000
+
+ /**
+ *
+ */
+ const val APP_ID = "200001"
+ const val APP_SECRET = "dc1d26c0d43e442588092c8d45c21bce"
+ const val SCHOOL_NO = "999888"
+ const val PATH_SHENG_YUAN = "/mnt/private/newcapec/"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/UrlBase64.java b/app/src/main/java/com/supwisdom/utils/UrlBase64.java
new file mode 100644
index 0000000..167871a
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/UrlBase64.java
@@ -0,0 +1,147 @@
+package com.supwisdom.utils;
+
+import java.util.Arrays;
+
+public final class UrlBase64 {
+ /* BASE 64 encode table */
+ private static final char base64en[] =
+ {
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
+ 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
+ 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
+ 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
+ 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
+ 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
+ 'w', 'x', 'y', 'z', '0', '1', '2', '3',
+ '4', '5', '6', '7', '8', '9', '-', '_',
+ };
+ //+/
+ private static final char BASE64_PAD = '=';
+ private static final char BASE64DE_FIRST = '+';
+ private static final char BASE64DE_LAST = 'z';
+ /* ASCII order for BASE 64 decode, -1 in unused character */
+ private static final byte base64de[] =
+ {
+ /* '+', ',', '-', '.', '/', '0', '1', '2', */
+ -1, -1, 62, -1, -1, 52, 53, 54,
+
+ /* '3', '4', '5', '6', '7', '8', '9', ':', */
+ 55, 56, 57, 58, 59, 60, 61, -1,
+
+ /* ';', '<', '=', '>', '?', '@', 'A', 'B', */
+ -1, -1, -1, -1, -1, -1, 0, 1,
+
+ /* 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', */
+ 2, 3, 4, 5, 6, 7, 8, 9,
+
+ /* 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', */
+ 10, 11, 12, 13, 14, 15, 16, 17,
+
+ /* 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', */
+ 18, 19, 20, 21, 22, 23, 24, 25,
+
+ /* '[', '\', ']', '^', '_', '`', 'a', 'b', */
+ -1, -1, -1, -1, 63, -1, 26, 27,
+
+ /* 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', */
+ 28, 29, 30, 31, 32, 33, 34, 35,
+
+ /* 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', */
+ 36, 37, 38, 39, 40, 41, 42, 43,
+
+ /* 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', */
+ 44, 45, 46, 47, 48, 49, 50, 51,
+ };
+
+ /**
+ * Encodes hex octects into Base64
+ *
+ * @param binaryData Array containing binaryData
+ * @return Encoded Base64 array
+ */
+ public static String encode(byte[] binaryData) {
+ int len = binaryData.length;
+ int i;
+ StringBuilder out = new StringBuilder();
+ for (i = 0; i < len; i++) {
+ int s = i % 3;
+ switch (s) {
+ case 0:
+ out.append(base64en[(binaryData[i] >> 2) & 0x3F]);
+ break;
+ case 1:
+ out.append(base64en[((binaryData[i - 1] & 0x3) << 4) + ((binaryData[i] >> 4) & 0xF)]);
+ break;
+ case 2:
+ out.append(base64en[((binaryData[i - 1] & 0xF) << 2) + ((binaryData[i] >> 6) & 0x3)]);
+ out.append(base64en[binaryData[i] & 0x3F]);
+ break;
+ default:
+ break;
+ }
+ }
+ i -= 1;
+ if (i % 3 == 0) {
+ out.append(base64en[(binaryData[i] & 0x3) << 4]);
+ out.append(BASE64_PAD);
+ out.append(BASE64_PAD);
+ } else if (i % 3 == 1) {
+ out.append(base64en[(binaryData[i] & 0xF) << 2]);
+ out.append(BASE64_PAD);
+ }
+ return out.toString();
+ }
+
+ /**
+ * Decodes Base64 data into octects
+ *
+ * @param encoded string containing Base64 data
+ * @return Array containind decoded data.
+ */
+ public static byte[] decode(String encoded) {
+ byte[] out = new byte[encoded.length()];
+ int offset = 0;
+ int len = encoded.length();
+ for (int i = 0; i < len; i++) {
+ int s = i % 4;
+ char ch = encoded.charAt(i);
+ if (ch == '=') {
+ return Arrays.copyOfRange(out, 0, offset);
+ }
+ if (ch < BASE64DE_FIRST || ch > BASE64DE_LAST) {
+ return null;
+ }
+ int c = base64de[ch - BASE64DE_FIRST];
+ if (c == -1) {
+ return null;
+ }
+ switch (s) {
+ case 0:
+ out[offset] += (byte) ((c << 2) & 0xFF);
+ break;
+ case 1:
+ out[offset++] += (byte) ((c >> 4) & 0x3);
+ /* if not last char with padding */
+ if (i < len - 3 ||
+ encoded.charAt(len - 2) != '=') {
+ out[offset] += (byte) ((c & 0xF) << 4);
+ }
+ break;
+ case 2:
+ out[offset++] += (byte) ((c >> 2) & 0xF);
+ /* if not last char with padding */
+ if (i < (len - 2) || encoded.charAt(len - 1) != '=') {
+ out[offset] += (byte) ((c & 0x3) << 6);
+ }
+ break;
+ case 3:
+ out[offset++] += (byte) c;
+ break;
+ default:
+ break;
+ }
+ }
+ return Arrays.copyOfRange(out, 0, offset);
+ }
+
+}
diff --git a/app/src/main/java/com/supwisdom/view/DialogPurchase.kt b/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
index aa442a0..c616cf3 100644
--- a/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
+++ b/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
@@ -5,17 +5,22 @@
import android.graphics.Color
import android.os.CountDownTimer
import android.view.KeyEvent
+import android.view.SurfaceView
import android.view.View
import android.widget.TextView
import com.google.zxing.Result
import com.newcapec.zxinglib.IDecoderAcquirer
import com.newcapec.zxinglib.PosDecoder
import com.supwisdom.R
+import com.supwisdom.activities.SPApplication
import com.supwisdom.activities.consume.bean.CardUserInfoBean
import com.supwisdom.activities.menu.MenuActivity
import com.supwisdom.activities.transdtl.TransdtlActivity
import com.supwisdom.utils.CommonUtil
import com.supwisdom.utils.LogUtil
+import com.supwisdom.utils.PublicDef
+import com.synodata.scanview.view.IDecodeListener
+import com.synodata.scanview.view.Preview
/**
** create by zzq on 2019/7/26
@@ -23,7 +28,7 @@
**/
@Suppress("DEPRECATION")
class DialogPurchase constructor(context: Context, private val callBack: ICallBack) :
- DialogBase(context), IDecoderAcquirer {
+ DialogBase(context) {
private val TAG = "DialogPurchase"
private var vCount: TextView
private var vPayhint: TextView
@@ -34,6 +39,7 @@
private var lastCode: String = ""
private var lastCodeTime: Long = 0
private val waitTime = 60
+ private var syPreview: Preview? = null
private var payQueryConfirm = false
var codePayingNoCancelEnable = false
var codePaying = false
@@ -46,30 +52,121 @@
vPayhint = this.findViewById(R.id.tv_pay_hint) as TextView
vPayamt = this.findViewById(R.id.tv_pay_amount) as TextView
vUsername = this.findViewById(R.id.tv_pay_username) as TextView
-
- posDec = PosDecoder(this)
}
- override fun onFailed() {
-
- }
-
- override fun onDecoded(result: String?) {
-
- }
-
- override fun onDecoded(result: Result) {
- val rawSize = result.rawBytes?.size ?: 0
- if (rawSize > 0) {
- if (result.text == lastCode &&
- result.timestamp - lastCodeTime < 5000
- ) {
- return
- }
- lastCode = result.text
- lastCodeTime = result.timestamp
- callBack.callback(result.text)
+ private fun initZxingScan() {
+ /**
+ * 启用zxing时关闭晟元
+ */
+ if (syPreview != null) {
+ syPreview!!.stopScanning()
+ syPreview!!.disconnect()
+ syPreview!!.visibility = View.GONE
+ syPreview = null
}
+
+ posDec = PosDecoder(object : IDecoderAcquirer {
+ override fun onFailed() {
+
+ }
+
+ override fun onDecoded(result: String?) {
+
+ }
+
+ override fun onDecoded(result: Result) {
+ val rawSize = result.rawBytes?.size ?: 0
+ if (rawSize > 0) {
+ val tt = System.currentTimeMillis()
+ if (result.text == lastCode &&
+ tt - lastCodeTime < PublicDef.CODE_SAME_FORBID_TIME
+ ) {
+ return
+ }
+ lastCode = result.text
+ lastCodeTime = tt
+ callBack.callback(result.text)
+ }
+ }
+ })
+ }
+
+ private fun initSynoScan() {
+ /**
+ * 启用晟元时关闭zxing
+ */
+ posDec?.onResume()
+ posDec = null
+
+ syPreview = this.findViewById<Preview>(R.id.sy_preview)
+ syPreview!!.visibility = SurfaceView.VISIBLE
+ syPreview!!.setDecodeListener(object : IDecodeListener {
+ override fun onDecodeResult(
+ bDecoded: Boolean,
+ result: String?,
+ bytesResult: ByteArray?,
+ type: String
+ ) {
+ if (bDecoded) {
+ val tt = System.currentTimeMillis()
+ if (result!! == lastCode &&
+ tt - lastCodeTime < PublicDef.CODE_SAME_FORBID_TIME
+ ) {
+ return
+ }
+ lastCode = result
+ lastCodeTime = tt
+ callBack.callback(result)
+ }
+ }
+
+ override fun onDecodeResult(bDecoded: Boolean, result: String?, type: String) {
+ }
+
+ override fun onSettingUpdateNotify() {
+ }
+
+ })
+ syPreview!!.showCode11Pre(false)
+ syPreview!!.showCode39Pre(false)
+ syPreview!!.setPreviewSize(640, 480)
+ syPreview!!.sceneMode = 1
+ syPreview!!.setVibrate(false)
+ }
+
+ private fun cameraOpenScan() {
+ val time = System.currentTimeMillis()
+ if (time < lastFixpayDecoderOpenTime ||
+ time - lastFixpayDecoderOpenTime > PublicDef.CAMERA_FIX_PAY_PERIOD
+ ) {
+ lastFixpayDecoderOpenTime = time
+ if (SPApplication.getInstance().isSynoCodeActive()) {
+ if (syPreview == null) {
+ initSynoScan()
+ }
+ syPreview!!.stopScanning()
+ syPreview!!.disconnect()
+ syPreview!!.connect(context)
+ syPreview!!.startScanning()
+ } else {
+ if (posDec == null) {
+ initZxingScan()
+ }
+ try {
+ posDec!!.onPause()
+ } catch (ex: Exception) {
+ ex.printStackTrace()
+ LogUtil.d(TAG, "fix close camera exception:" + CommonUtil.getExceptionStack(ex))
+ }
+ try {
+ posDec!!.onResume()
+ } catch (ex: Exception) {
+ ex.printStackTrace()
+ LogUtil.d(TAG, "fix open camera exception:" + CommonUtil.getExceptionStack(ex))
+ }
+ }
+ }
+ syPreview?.startScanning()
}
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
@@ -104,7 +201,7 @@
vUsername.visibility = View.GONE
show()
- asyncOpenDecoder()
+ cameraOpenScan()
resetCounter(waitTime)
}
@@ -179,54 +276,13 @@
resetCounter(info.showtime)
}
- private fun asyncOpenDecoder() {
- if (!isFixPay) {
- try {
- posDec!!.onResume()
- } catch (ex: Exception) {
- ex.printStackTrace()
- LogUtil.d(TAG, "open camera exception:" + CommonUtil.getExceptionStack(ex))
- }
- } else {
- val time = System.currentTimeMillis()
- if (time < lastFixpayDecoderOpenTime ||
- time - lastFixpayDecoderOpenTime > 180000
- ) {
- lastFixpayDecoderOpenTime = time
- try {
- posDec!!.onPause()
- } catch (ex: Exception) {
- ex.printStackTrace()
- LogUtil.d(TAG, "fix close camera exception:" + CommonUtil.getExceptionStack(ex))
- }
- try {
- posDec!!.onResume()
- } catch (ex: Exception) {
- ex.printStackTrace()
- LogUtil.d(TAG, "fix open camera exception:" + CommonUtil.getExceptionStack(ex))
- }
- }
- }
- }
-
- private fun asyncCloseDecoder() {
- if (!isFixPay) {
- try {
- posDec!!.onPause()
- } catch (ex: Exception) {
- ex.printStackTrace()
- LogUtil.d(TAG, "close camera exception:" + CommonUtil.getExceptionStack(ex))
- }
- }
- }
-
private fun finish(isManualCancel: Boolean, isPaying: Boolean) {
+ syPreview?.stopScanning()
codePaying = false
codePayingNoCancelEnable = false
payQueryConfirm = false
dismiss()
callBack.callback(isManualCancel, isPaying)
- asyncCloseDecoder()
}
private var counter: ConsumeHintCount? = null
@@ -234,7 +290,7 @@
private fun resetCounter(times: Int) {
counter?.cancel()
counter = ConsumeHintCount((times * 1000).toLong(), 500)
- counter?.start()
+ counter!!.start()
}
private inner class ConsumeHintCount
@@ -253,7 +309,7 @@
}
override fun onFinish() {
- finish(false, false)
+ finish(isManualCancel = false, isPaying = false)
}
}
diff --git a/app/src/main/jniLibs/arm64-v8a/libjava_camera.so b/app/src/main/jniLibs/arm64-v8a/libjava_camera.so
new file mode 100644
index 0000000..a6c77bd
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libjava_camera.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libsyno_getparam.so b/app/src/main/jniLibs/arm64-v8a/libsyno_getparam.so
new file mode 100644
index 0000000..96713e2
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libsyno_getparam.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libsyno_jni.so b/app/src/main/jniLibs/arm64-v8a/libsyno_jni.so
new file mode 100644
index 0000000..37bb8c9
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libsyno_jni.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libsynochip_qrcode.so b/app/src/main/jniLibs/arm64-v8a/libsynochip_qrcode.so
new file mode 100644
index 0000000..86805d8
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libsynochip_qrcode.so
Binary files differ
diff --git a/app/src/main/res/layout/activity_manage.xml b/app/src/main/res/layout/activity_manage.xml
index 7537388..6b979d6 100644
--- a/app/src/main/res/layout/activity_manage.xml
+++ b/app/src/main/res/layout/activity_manage.xml
@@ -1,54 +1,54 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- style="@style/head_title_out_style">
-
- <LinearLayout style="@style/head_title_inner_style">
- <TextView
- style="@style/head_title_text_style"
- android:text="维护管理界面"/>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_marginLeft="10dp"
- android:orientation="vertical"
- android:padding="10dp">
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_shop_passwd"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_comm_set"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_unconfirm_transdtl"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_out_dtl"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_upgrade"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_app_exit"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_setting"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_clear_blklist"/>
-
- <TextView
- style="@style/menu_item_text_style"
- android:text="@string/consume_menu_control_set"/>
- </LinearLayout>
- </LinearLayout>
-</LinearLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ style="@style/head_title_out_style">
+
+ <LinearLayout style="@style/head_title_inner_style">
+ <TextView
+ style="@style/head_title_text_style"
+ android:text="维护管理界面"/>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="10dp"
+ android:orientation="vertical"
+ android:padding="10dp">
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_shop_passwd"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_comm_set"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_unconfirm_transdtl"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_syno_active"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_upgrade"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_app_exit"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_setting"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_clear_blklist"/>
+
+ <TextView
+ style="@style/menu_item_text_style"
+ android:text="@string/consume_menu_control_set"/>
+ </LinearLayout>
+ </LinearLayout>
+</LinearLayout>
diff --git a/app/src/main/res/layout/dialog_purchase.xml b/app/src/main/res/layout/dialog_purchase.xml
index bb9a98a..fc8ef91 100644
--- a/app/src/main/res/layout/dialog_purchase.xml
+++ b/app/src/main/res/layout/dialog_purchase.xml
@@ -1,53 +1,64 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="450dp"
- android:layout_height="300dp"
- android:background="@color/light_blue2"
- android:layout_gravity="center"
- android:orientation="vertical">
- <RelativeLayout android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center"
- android:layout_margin="10dp"
- android:background="@drawable/corner_bg_white"
- android:gravity="center_horizontal"
- android:orientation="vertical">
- <!--倒计时-->
- <TextView
- android:id="@+id/tv_close_count"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="15dp"
- android:layout_marginTop="10dp"
- android:gravity="start|center"
- android:text="30s"
- android:textColor="@color/blue"
- android:textSize="30sp"/>
- <LinearLayout
- style="@style/purchase_ll_text_style"
- android:layout_below="@+id/tv_close_count">
-
- <TextView
- android:id="@+id/tv_pay_hint"
- style="@style/purchase_tv_text_hint_style"
- android:text="消费成功"
- android:textColor="@color/light_green"/>
- <TextView
- android:id="@+id/tv_pay_username"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="姓名: 张三"
- android:textColor="@color/blue"
- android:textSize="@dimen/ordinary_consume_text_size"/>
- <TextView
- android:id="@+id/tv_pay_amount"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
- android:text="金额: 10.00元"
- android:textColor="@color/blue"
- android:textSize="@dimen/ordinary_consume_text_size"/>
-
- </LinearLayout>
- </RelativeLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="450dp"
+ android:layout_height="300dp"
+ android:layout_gravity="center"
+ android:background="@color/light_blue2"
+ android:orientation="vertical">
+
+ <com.synodata.scanview.view.Preview
+ android:id="@+id/sy_preview"
+ android:layout_width="1dp"
+ android:layout_height="1dp"
+ android:visibility="gone" />
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:layout_margin="10dp"
+ android:background="@drawable/corner_bg_white"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+ <!--倒计时-->
+ <TextView
+ android:id="@+id/tv_close_count"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="15dp"
+ android:layout_marginTop="10dp"
+ android:gravity="start|center"
+ android:text="30s"
+ android:textColor="@color/blue"
+ android:textSize="30sp" />
+
+ <LinearLayout
+ style="@style/purchase_ll_text_style"
+ android:layout_below="@+id/tv_close_count">
+
+ <TextView
+ android:id="@+id/tv_pay_hint"
+ style="@style/purchase_tv_text_hint_style"
+ android:text="消费成功"
+ android:textColor="@color/light_green" />
+
+ <TextView
+ android:id="@+id/tv_pay_username"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="姓名: 张三"
+ android:textColor="@color/blue"
+ android:textSize="@dimen/ordinary_consume_text_size" />
+
+ <TextView
+ android:id="@+id/tv_pay_amount"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:text="金额: 10.00元"
+ android:textColor="@color/blue"
+ android:textSize="@dimen/ordinary_consume_text_size" />
+
+ </LinearLayout>
+ </RelativeLayout>
</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c26513d..5b1cfbc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,136 +1,136 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
- <string name="app_name">消费POS机</string>
- <string name="title_activity_base">基类</string>
- <string name="action_settings">设置</string>
- <string name="title_activity_main">主界面</string>
- <string name="title_activity_psam">操作psam卡</string>
- <string name="title_activity_readcard">读卡</string>
- <string name="title_activity_mode">模式</string>
- <string name="title_activity_init">初始化</string>
- <string name="title_activity_load">加载</string>
- <string name="title_activity_comm">通讯</string>
- <string name="title_activity_control">控制参数</string>
- <string name="title_activity_consumecancel">消费撤销</string>
- <string name="title_activity_library">图书缴费</string>
- <string name="title_activity_recharge">在线充值</string>
- <string name="cardlib_name">supwisdom.kscpucard</string>
- <string name="connfail">连接失败</string>
- <string name="msg_read_card_error">读卡错误</string>
- <string name="msg_notsupport_card_oper">不支持卡操作</string>
- <string name="msg_card_data_error">卡数据错误</string>
- <string name="nfc_not_support">不支持NFC</string>
- <string name="nfc_disabled">NFC未启动</string>
- <string name="confirm_open_nfc">是否打开NFC</string>
- <string name="action_exit">退出</string>
- <string name="wait_msg">请刷卡</string>
- <string name="menu_name_set">设置</string>
- <string name="menu_name_purchase">消费</string>
- <string name="title_activity_set">设置</string>
- <string name="hello_world">hello</string>
- <string name="devtimefmt">yyyyMMddHHmmss</string>
- <string name="title_activity_transdtl">交易流水查询</string>
- <string name="no_mf_files">\"无MF文件\"</string>
- <string name="creat_mf_files">创建MF文件</string>
- <string name="creat_mf_success">创建MF文件成功</string>
- <string name="creat_mf_fail">创建MF文件失败</string>
- <string name="mf_exist">MF退出</string>
- <string name="error">错误</string>
- <string name="reset_psam1_success">重设PSAM1成功</string>
- <string name="reset_psam1_failed">重设psam1失败</string>
- <string name="reset_psam2_success">重设psam2成功</string>
- <string name="reset_psam2_failed">重设psam2失败</string>
- <string name="get_random_number_failed">获取随机数失败</string>
- <string name="reset_import1">初始化1失败</string>
- <string name="reset_failed_cannot_get_random_number1">不能获取随机数1</string>
- <string name="reset_import2">重设2失败</string>
- <string name="reset_failed_cannot_get_random_number2">获取随机数2失败</string>
- <string name="title_activity_show_day_consume">营业额查询</string>
- <string name="title_activity_password">密码设置</string>
- <string name="isPasswordCancel">isPassWordCancel</string>
- <string name="consume_img">消费</string>
- <string name="title_activity_auth">签到</string>
- <string name="action_saoma">扫码</string>
- <string name="scan_text">将二维码或条码放入框内完成扫描</string>
- <string name="home_back">返回</string>
- <string name="title_activity_consume">普通消费</string>
- <string name="title_activity_qrcamera">扫码</string>
- <string name="title_activity_splash">树维pos</string>
- <string name="waiting_msg">正在识别,请稍后…</string>
- <string name="username">姓 名</string>
- <string name="userStuEmpNo">学工号</string>
- <string name="userExpireDate">有效期</string>
- <string name="userBalance">余 额</string>
- <string name="consumeAmount">消费额(元)</string>
- <string name="title_activity_consume_cancel">消费撤销</string>
- <string name="title_activity_update_blacklist">更新黑名单</string>
- <string name="title_activity_recover_factory">恢复出厂</string>
- <string name="dialogTitle">提示</string>
- <string name="all_home_words">主页</string>
- <string name="all_back_words">返回</string>
- <string name="title_activity_order_online">在线点餐</string>
- <string name="title_activity_query_parameter_second">查询第二页</string>
- <string name="devphyid">终端机编号</string>
- <string name="samNo">SAM卡号</string>
- <string name="softVerNo">软件版本号</string>
- <string name="feerateVerNo">收费参数版本号</string>
- <string name="sysparaVerNo">主参数版本号</string>
- <string name="cardverno">黑名单参数版本号</string>
- <string name="devseqno">POS当前流水号</string>
- <string name="opentime">开机时间</string>
- <string name="nextPage">下一页</string>
- <string name="queryParameters">终端参数查询</string>
- <string name="title_activity_change_mode">更改模式</string>
- <string name="title_activity_enable">设备启用</string>
- <string name="offline_words">脱机状态</string>
- <string name="online_words">联机状态</string>
- <string name="title_activity_set_server_info">设置通讯参数</string>
- <string name="title_activity_test_touch">TestTouchActivity</string>
- <string name="wait_put_card_words"><![CDATA[请刷卡 >>]]></string>
- <string name="title_activity_hotel">酒店消费</string>
- <string name="title_activity_manage">设备管理</string>
- <string name="title_activity_revenue">营业额</string>
- <string name="title_activity_pay">支付</string>
- <string name="title_activity_modifypwd">修改密码</string>
- <string name="title_activity_syspara">系统参数</string>
- <string name="title_activity_department">部门限制</string>
- <string name="title_activity_sddtl">SD卡流水</string>
- <string name="title_activity_cardlib">卡库</string>
- <string name="title_activity_upgrade">本地升级</string>
- <!--消费菜单-->
- <string name="consume_menu_revenue">1-营业额</string>
- <string name="consume_menu_transdtl_upload">2-上传流水</string>
- <string name="consume_menu_link_check">3-链路检测</string>
- <string name="consume_menu_auth">4-手工签到</string>
- <string name="consume_menu_syspara_query">5-参数查询</string>
- <string name="consume_menu_manage">6-管理功能</string>
- <string name="consume_menu_shop_password_set">7-商户密码</string>
- <string name="consume_menu_consume_mode">8-消费模式</string>
- <string name="consume_menu_reverse">9-手工冲正</string>
- <!--消费维护菜单-->
- <string name="consume_menu_shop_passwd">1-查看商户密码</string>
- <string name="consume_menu_comm_set">2-通讯参数设置</string>
- <string name="consume_menu_unconfirm_transdtl">3-查询未上传流水</string>
- <string name="consume_menu_out_dtl">4-导出本地流水</string>
- <string name="consume_menu_upgrade">5-软件在线升级</string>
- <string name="consume_menu_app_exit">6-退出应用程序</string>
- <string name="consume_menu_setting">7-进入设置界面</string>
- <string name="consume_menu_clear_blklist">8-清空黑名单</string>
- <string name="consume_menu_control_set">9-本地参数设置</string>
- <!--充值菜单-->
- <string name="deposit_menu_revenue">1-营业额查询</string>
- <string name="deposit_menu_login_out">2-退出登录</string>
- <string name="deposit_menu_reverse">3-手工冲正</string>
- <string name="deposit_menu_param_query">4-参数查询</string>
- <string name="deposit_menu_param_manage">5-设备管理</string>
- <string name="deposit_menu_param_link">6-链路检测</string>
- <!--充值维护菜单-->
- <string name="deposit_manage_transdtl_clear">1-清空流水</string>
- <string name="deposit_manage_comm_set">2-参数设置</string>
- <string name="deposit_manage_upgrade">3-在线升级</string>
- <string name="deposit_manage_app_exit">4-退出应用</string>
- <string name="deposit_manage_setting">5-网络设置</string>
- <!--充值参数-->
- <string name="deposit_param_opername">操作员</string>
-</resources>
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">消费POS机</string>
+ <string name="title_activity_base">基类</string>
+ <string name="action_settings">设置</string>
+ <string name="title_activity_main">主界面</string>
+ <string name="title_activity_psam">操作psam卡</string>
+ <string name="title_activity_readcard">读卡</string>
+ <string name="title_activity_mode">模式</string>
+ <string name="title_activity_init">初始化</string>
+ <string name="title_activity_load">加载</string>
+ <string name="title_activity_comm">通讯</string>
+ <string name="title_activity_control">控制参数</string>
+ <string name="title_activity_consumecancel">消费撤销</string>
+ <string name="title_activity_library">图书缴费</string>
+ <string name="title_activity_recharge">在线充值</string>
+ <string name="cardlib_name">supwisdom.kscpucard</string>
+ <string name="connfail">连接失败</string>
+ <string name="msg_read_card_error">读卡错误</string>
+ <string name="msg_notsupport_card_oper">不支持卡操作</string>
+ <string name="msg_card_data_error">卡数据错误</string>
+ <string name="nfc_not_support">不支持NFC</string>
+ <string name="nfc_disabled">NFC未启动</string>
+ <string name="confirm_open_nfc">是否打开NFC</string>
+ <string name="action_exit">退出</string>
+ <string name="wait_msg">请刷卡</string>
+ <string name="menu_name_set">设置</string>
+ <string name="menu_name_purchase">消费</string>
+ <string name="title_activity_set">设置</string>
+ <string name="hello_world">hello</string>
+ <string name="devtimefmt">yyyyMMddHHmmss</string>
+ <string name="title_activity_transdtl">交易流水查询</string>
+ <string name="no_mf_files">\"无MF文件\"</string>
+ <string name="creat_mf_files">创建MF文件</string>
+ <string name="creat_mf_success">创建MF文件成功</string>
+ <string name="creat_mf_fail">创建MF文件失败</string>
+ <string name="mf_exist">MF退出</string>
+ <string name="error">错误</string>
+ <string name="reset_psam1_success">重设PSAM1成功</string>
+ <string name="reset_psam1_failed">重设psam1失败</string>
+ <string name="reset_psam2_success">重设psam2成功</string>
+ <string name="reset_psam2_failed">重设psam2失败</string>
+ <string name="get_random_number_failed">获取随机数失败</string>
+ <string name="reset_import1">初始化1失败</string>
+ <string name="reset_failed_cannot_get_random_number1">不能获取随机数1</string>
+ <string name="reset_import2">重设2失败</string>
+ <string name="reset_failed_cannot_get_random_number2">获取随机数2失败</string>
+ <string name="title_activity_show_day_consume">营业额查询</string>
+ <string name="title_activity_password">密码设置</string>
+ <string name="isPasswordCancel">isPassWordCancel</string>
+ <string name="consume_img">消费</string>
+ <string name="title_activity_auth">签到</string>
+ <string name="action_saoma">扫码</string>
+ <string name="scan_text">将二维码或条码放入框内完成扫描</string>
+ <string name="home_back">返回</string>
+ <string name="title_activity_consume">普通消费</string>
+ <string name="title_activity_qrcamera">扫码</string>
+ <string name="title_activity_splash">树维pos</string>
+ <string name="waiting_msg">正在识别,请稍后…</string>
+ <string name="username">姓 名</string>
+ <string name="userStuEmpNo">学工号</string>
+ <string name="userExpireDate">有效期</string>
+ <string name="userBalance">余 额</string>
+ <string name="consumeAmount">消费额(元)</string>
+ <string name="title_activity_consume_cancel">消费撤销</string>
+ <string name="title_activity_update_blacklist">更新黑名单</string>
+ <string name="title_activity_recover_factory">恢复出厂</string>
+ <string name="dialogTitle">提示</string>
+ <string name="all_home_words">主页</string>
+ <string name="all_back_words">返回</string>
+ <string name="title_activity_order_online">在线点餐</string>
+ <string name="title_activity_query_parameter_second">查询第二页</string>
+ <string name="devphyid">终端机编号</string>
+ <string name="samNo">SAM卡号</string>
+ <string name="softVerNo">软件版本号</string>
+ <string name="feerateVerNo">收费参数版本号</string>
+ <string name="sysparaVerNo">主参数版本号</string>
+ <string name="cardverno">黑名单参数版本号</string>
+ <string name="devseqno">POS当前流水号</string>
+ <string name="opentime">开机时间</string>
+ <string name="nextPage">下一页</string>
+ <string name="queryParameters">终端参数查询</string>
+ <string name="title_activity_change_mode">更改模式</string>
+ <string name="title_activity_enable">设备启用</string>
+ <string name="offline_words">脱机状态</string>
+ <string name="online_words">联机状态</string>
+ <string name="title_activity_set_server_info">设置通讯参数</string>
+ <string name="title_activity_test_touch">TestTouchActivity</string>
+ <string name="wait_put_card_words"><![CDATA[请刷卡 >>]]></string>
+ <string name="title_activity_hotel">酒店消费</string>
+ <string name="title_activity_manage">设备管理</string>
+ <string name="title_activity_revenue">营业额</string>
+ <string name="title_activity_pay">支付</string>
+ <string name="title_activity_modifypwd">修改密码</string>
+ <string name="title_activity_syspara">系统参数</string>
+ <string name="title_activity_department">部门限制</string>
+ <string name="title_activity_sddtl">SD卡流水</string>
+ <string name="title_activity_cardlib">卡库</string>
+ <string name="title_activity_upgrade">本地升级</string>
+ <!--消费菜单-->
+ <string name="consume_menu_revenue">1-营业额</string>
+ <string name="consume_menu_transdtl_upload">2-上传流水</string>
+ <string name="consume_menu_link_check">3-链路检测</string>
+ <string name="consume_menu_auth">4-手工签到</string>
+ <string name="consume_menu_syspara_query">5-参数查询</string>
+ <string name="consume_menu_manage">6-管理功能</string>
+ <string name="consume_menu_shop_password_set">7-商户密码</string>
+ <string name="consume_menu_consume_mode">8-消费模式</string>
+ <string name="consume_menu_reverse">9-手工冲正</string>
+ <!--消费维护菜单-->
+ <string name="consume_menu_shop_passwd">1-查看商户密码</string>
+ <string name="consume_menu_comm_set">2-通讯参数设置</string>
+ <string name="consume_menu_unconfirm_transdtl">3-查询未上传流水</string>
+ <string name="consume_menu_syno_active">4-激活晟元算法</string>
+ <string name="consume_menu_upgrade">5-软件在线升级</string>
+ <string name="consume_menu_app_exit">6-退出应用程序</string>
+ <string name="consume_menu_setting">7-进入设置界面</string>
+ <string name="consume_menu_clear_blklist">8-清空黑名单</string>
+ <string name="consume_menu_control_set">9-本地参数设置</string>
+ <!--充值菜单-->
+ <string name="deposit_menu_revenue">1-营业额查询</string>
+ <string name="deposit_menu_login_out">2-退出登录</string>
+ <string name="deposit_menu_reverse">3-手工冲正</string>
+ <string name="deposit_menu_param_query">4-参数查询</string>
+ <string name="deposit_menu_param_manage">5-设备管理</string>
+ <string name="deposit_menu_param_link">6-链路检测</string>
+ <!--充值维护菜单-->
+ <string name="deposit_manage_transdtl_clear">1-清空流水</string>
+ <string name="deposit_manage_comm_set">2-参数设置</string>
+ <string name="deposit_manage_upgrade">3-在线升级</string>
+ <string name="deposit_manage_app_exit">4-退出应用</string>
+ <string name="deposit_manage_setting">5-网络设置</string>
+ <!--充值参数-->
+ <string name="deposit_param_opername">操作员</string>
+</resources>
diff --git a/keys-sign.jks b/keys-sign.jks
new file mode 100644
index 0000000..20b9f78
--- /dev/null
+++ b/keys-sign.jks
Binary files differ