Эх сурвалжийг харах

接入查询基础数据-分页接口;修复指纹工具类NPE

Frankensteinly 7 сар өмнө
parent
commit
5890ac01ff

+ 5 - 0
app/src/main/java/com/grkj/iscs/model/UrlConsts.kt

@@ -256,4 +256,9 @@ object UrlConsts {
      * 系统用户登录-face登录-arcsoft
      */
     const val LOGIN_FACE = "/loginByArcFace"
+
+    /**
+     * 查询基础数据-分页
+     */
+    const val SYSTEM_ATTRIBUTE_PAGE = "/iscs/attribute/getIsSystemAttributePage"
 }

+ 38 - 0
app/src/main/java/com/grkj/iscs/model/vo/system/SystemAttributePageRespVO.kt

@@ -0,0 +1,38 @@
+package com.grkj.iscs.model.vo.system
+
+data class SystemAttributePageRespVO(
+    val countId: Any,
+    val current: Int,
+    val maxLimit: Any,
+    val optimizeCountSql: Boolean,
+    val orders: MutableList<Any>,
+    val pages: Int,
+    val records: MutableList<Record>,
+    val searchCount: Boolean,
+    val size: Int,
+    val total: Int
+) {
+    data class Record(
+        val sysAttrId: Long?,
+
+        /**
+         * 参数名称
+         */
+        val sysAttrName: String?,
+
+        /**
+         * 参数键名
+         */
+        val sysAttrKey: String?,
+
+        /**
+         * 参数键值
+         */
+        val sysAttrValue: String?,
+
+        /**
+         * 分类
+         */
+        val sysAttrType: String?,
+    )
+}

+ 1 - 1
app/src/main/java/com/grkj/iscs/util/FingerprintUtil.kt

@@ -69,7 +69,7 @@ object FingerprintUtil {
         if (bStarted) {
             closeDevice()
         }
-        zkusbManager!!.unRegisterUSBPermissionReceiver()
+        zkusbManager?.unRegisterUSBPermissionReceiver()
     }
 
     fun start() {

+ 20 - 0
app/src/main/java/com/grkj/iscs/util/NetApi.kt

@@ -19,6 +19,7 @@ import com.grkj.iscs.model.vo.map.MapInfoRespVO
 import com.grkj.iscs.model.vo.map.MapPointPageRespVO
 import com.grkj.iscs.model.vo.sop.SopInfoRespVO
 import com.grkj.iscs.model.vo.sop.SopPageRespVO
+import com.grkj.iscs.model.vo.system.SystemAttributePageRespVO
 import com.grkj.iscs.model.vo.ticket.LockPointUpdateReqVO
 import com.grkj.iscs.model.vo.ticket.LotoMapRespVO
 import com.grkj.iscs.model.vo.ticket.StepDetailRespVO
@@ -996,4 +997,23 @@ object NetApi {
             }, isGet = false, isAuth = false, fileList = fileList
         )
     }
+
+    /**
+     * 查询基础数据-分页
+     */
+    fun getSystemAttributePage(pages: Int, size: Int, callBack: (SystemAttributePageRespVO?) -> Unit) {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.SYSTEM_ATTRIBUTE_PAGE,
+            false,
+            mapOf(
+                "pages" to pages,
+                "size" to size
+            ),
+            { res, _, _ ->
+                res?.let {
+                    callBack(getRefBean(it))
+                }
+            }, isGet = true, isAuth = true
+        )
+    }
 }

+ 37 - 0
app/src/main/java/com/grkj/iscs/util/SPUtils.kt

@@ -5,6 +5,7 @@ import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
 import com.grkj.iscs.model.bo.UpdateKeyReturnBO
 import com.grkj.iscs.model.vo.card.CardInfoRespVO
+import com.grkj.iscs.model.vo.system.SystemAttributePageRespVO
 import com.grkj.iscs.model.vo.ticket.LockPointUpdateReqVO
 import com.grkj.iscs.util.log.LogUtil
 import java.util.Collections
@@ -14,6 +15,7 @@ object SPUtils {
     private const val SP_NAME = "iscs"
     private const val SP_CONFIG_NAME = "iscs_config"
     private const val SP_DATA = "iscs_data"
+    private const val SP_ATTRIBUTE = "iscs_attribute"
 
     private const val KEY_LOGIN_USER_CARD_ID = "card_id"
     private const val KEY_LOGIN_USER_CARD_CODE = "card_code"
@@ -30,6 +32,8 @@ object SPUtils {
     private const val KEY_DATA_UPDATE_LOCK_POINT = "update_lock_point"
     private const val KEY_DATA_UPDATE_KEY_RETURN = "update_key_return"
 
+    private const val KEY_SYSTEM_ATTRIBUTE = "system_attribute"
+
     fun getLoginUser(context: Context): CardInfoRespVO? {
         val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
         if (sp.getString(KEY_LOGIN_USER_CARD_NFC, null) == null) {
@@ -178,4 +182,37 @@ object SPUtils {
         edit.putString(KEY_DATA_UPDATE_KEY_RETURN, null)
         edit.apply()
     }
+
+    fun saveSystemAttribute(context: Context, recordList: MutableList<SystemAttributePageRespVO.Record>) {
+        val sp = context.getSharedPreferences(SP_ATTRIBUTE, Context.MODE_PRIVATE)
+        val edit = sp.edit()
+        edit.putString(KEY_SYSTEM_ATTRIBUTE, Gson().toJson(recordList))
+        edit.apply()
+    }
+
+    fun getSystemAttribute(context: Context): MutableList<SystemAttributePageRespVO.Record> {
+        val sp = context.getSharedPreferences(SP_ATTRIBUTE, Context.MODE_PRIVATE)
+        val listJson = sp.getString(KEY_SYSTEM_ATTRIBUTE, null)
+        if (listJson.isNullOrEmpty()) {
+            return Collections.emptyList()
+        }
+        try {
+            val tempList: MutableList<SystemAttributePageRespVO.Record> = Gson().fromJson(
+                listJson,
+                object : TypeToken<MutableList<SystemAttributePageRespVO.Record>>() {}.type
+            )
+            return tempList
+        } catch (e: Exception) {
+            LogUtil.e("${e.message}")
+            return Collections.emptyList()
+        }
+    }
+
+    fun getAttributeValue(context: Context, key: String): String? {
+        val list = getSystemAttribute(context)
+        if (list.isEmpty()) {
+            return null
+        }
+        return list.find { it.sysAttrKey == key }?.sysAttrValue
+    }
 }

+ 3 - 7
app/src/main/java/com/grkj/iscs/view/dialog/LoginDialog.kt

@@ -12,7 +12,6 @@ import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.model.vo.user.UserInfoRespVO
 import com.grkj.iscs.util.ArcSoftUtil
-import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.FingerprintUtil
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
@@ -37,12 +36,10 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
     override fun initView() {
         mBinding?.tvLogin?.setOnClickListener {
             presenter?.login(ctx, mBinding?.etAccount?.text.toString(), mBinding?.etPassword?.text.toString()) { isSuccess, cardInfoRespVO, userInfoRespVO ->
-                Executor.runOnMain {
-                    if (isSuccess) {
-                        dismiss()
-                    }
-                    callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
+                if (isSuccess) {
+                    dismiss()
                 }
+                callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
             }
         }
         mBinding?.tvCancel?.setOnClickListener { dismiss() }
@@ -124,7 +121,6 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
     private fun startFace() {
         ArcSoftUtil.initEngine(context)
         ArcSoftUtil.initCamera(context, ctx.windowManager, mBinding?.preview!!) {
-            println("haha : ${it == null}")
             it?.let { itBitmap ->
                 BusinessManager.sendLoadingEventMsg(context.getString(R.string.face_detected_do_login))
                 ArcSoftUtil.stop()

+ 23 - 55
app/src/main/java/com/grkj/iscs/view/presenter/LoginPresenter.kt

@@ -31,80 +31,48 @@ class LoginPresenter : BasePresenter<ILoginView>() {
             return
         }
         NetApi.login(account, pwd) {
-            if (it == true) {
-                NetApi.getUserInfo { userInfo ->
-                    NetApi.getCardInfoByLoginUser { itInfo ->
-                        itInfo?.let { info ->
-                            SPUtils.setLoginUser(mContext!!, info)
-                        }
-                        callBack.invoke(it, itInfo, userInfo)
-                    }
-                }
-            } else {
-                callBack.invoke(false, null, null)
-            }
+            commonProcess(it, callBack)
         }
     }
 
     fun cardLogin(card: String, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
         NetApi.cardLogin(card) {
-            if (it == true) {
-                NetApi.getUserInfo { userInfo ->
-                    NetApi.getCardInfoByLoginUser { itInfo ->
-                        Executor.runOnMain {
-                            itInfo?.let { info ->
-                                SPUtils.setLoginUser(mContext!!, info)
-                            }
-                            callBack.invoke(it, itInfo, userInfo)
-                        }
-                    }
-                }
-            } else {
-                Executor.runOnMain {
-                    callBack.invoke(false, null, null)
-                }
-            }
+            commonProcess(it, callBack)
         }
     }
 
     fun fingerprintLogin(bitmap: Bitmap, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
         NetApi.loginByFingerprint(mutableListOf(FileStreamReqParam("file", BitmapUtil.bitmapToByteArray(bitmap), ".bmp"))) {
-            if (it) {
-                NetApi.getUserInfo { userInfo ->
-                    NetApi.getCardInfoByLoginUser { itInfo ->
-                        Executor.runOnMain {
-                            itInfo?.let { info ->
-                                SPUtils.setLoginUser(mContext!!, info)
-                            }
-                            callBack.invoke(it, itInfo, userInfo)
-                        }
-                    }
-                }
-            } else {
-                Executor.runOnMain {
-                    callBack.invoke(false, null, null)
-                }
-            }
+            commonProcess(it, callBack)
         }
     }
 
     fun faceLogin(bitmap: Bitmap, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
         NetApi.loginByFace(mutableListOf(FileStreamReqParam("file", BitmapUtil.bitmapToByteArray(bitmap), ".bmp"))) {
-            if (it) {
-                NetApi.getUserInfo { userInfo ->
-                    NetApi.getCardInfoByLoginUser { itInfo ->
+            commonProcess(it, callBack)
+        }
+    }
+
+    private fun commonProcess(loginRst: Boolean?, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
+        if (loginRst == true) {
+            NetApi.getUserInfo { userInfo ->
+                NetApi.getCardInfoByLoginUser { itInfo ->
+                    NetApi.getSystemAttributePage(1, -1) { itSys ->
+                        itSys?.let { sys ->
+                            SPUtils.saveSystemAttribute(mContext!!, sys.records)
+                        }
+                        itInfo?.let { info ->
+                            SPUtils.setLoginUser(mContext!!, info)
+                        }
                         Executor.runOnMain {
-                            itInfo?.let { info ->
-                                SPUtils.setLoginUser(mContext!!, info)
-                            }
-                            callBack.invoke(it, itInfo, userInfo)
+                            callBack.invoke(loginRst, itInfo, userInfo)
                         }
                     }
                 }
-            } else {
-                Executor.runOnMain {
-                    callBack.invoke(false, null, null)
-                }
+            }
+        } else {
+            Executor.runOnMain {
+                callBack.invoke(false, null, null)
             }
         }
     }