Browse Source

移除token更新逻辑,登录时不再调用卡相关接口;共锁人刷卡弹框改成显示nickname

Frankensteinly 7 tháng trước cách đây
mục cha
commit
349fc2dd25

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

@@ -966,7 +966,7 @@ object BusinessManager {
 //            isLock = it.toInt() < Constants.TICKET_STATUS_READY_TO_UNLOCK.toInt()
 //        }
         val bo = WorkTicketSendBO(
-            cardNo = SPUtils.getLoginUser(MyApplication.instance!!.applicationContext)?.cardNfc,
+            cardNo = SPUtils.getLoginUser(MyApplication.instance!!.applicationContext)?.userCardList?.get(0),
         )
         CommonUtils.getDiffHours(vo.ticketEndTime)?.let {
             bo.effectiveTime = it

+ 8 - 0
app/src/main/java/com/grkj/iscs/model/bo/LoginUserBO.kt

@@ -0,0 +1,8 @@
+package com.grkj.iscs.model.bo
+
+data class LoginUserBO(
+    val userId: Long?,
+    val userName: String?,
+    val roleKeyList: MutableList<String>?,
+    val userCardList: MutableList<String>?
+)

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/card/CardInfoRespVO.kt

@@ -10,5 +10,5 @@ data class CardInfoRespVO(
     var cardType: Int?,
     var userId: Long?,
     var userName: String?,
-    var roleKeyList: List<String>?
+    var nickName: String?
 ): Serializable

+ 2 - 0
app/src/main/java/com/grkj/iscs/model/vo/user/UserInfoRespVO.kt

@@ -11,6 +11,8 @@ data class UserInfoRespVO(
 
     val roles: MutableList<String>?,
 
+    val userCardList: MutableList<String>?,
+
     val user: SysUserVO?
 ) : Serializable {
     data class SysUserVO(

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

@@ -289,18 +289,18 @@ object NetApi {
     /**
      * 根据登录用户获取刷卡信息
      */
-    fun getCardInfoByLoginUser(callBack: (CardInfoRespVO?) -> Unit) {
-        NetHttpManager.getInstance().doRequestNet(
-            UrlConsts.CARD_INFO_BY_LOGIN_USER,
-            false,
-            mapOf<String, String>(),
-            { res, _, _ ->
-                res?.let {
-                    callBack.invoke(getRefBean(it))
-                }
-            }, isGet = true, isAuth = true
-        )
-    }
+//    fun getCardInfoByLoginUser(callBack: (CardInfoRespVO?) -> Unit) {
+//        NetHttpManager.getInstance().doRequestNet(
+//            UrlConsts.CARD_INFO_BY_LOGIN_USER,
+//            false,
+//            mapOf<String, String>(),
+//            { res, _, _ ->
+//                res?.let {
+//                    callBack.invoke(getRefBean(it))
+//                }
+//            }, isGet = true, isAuth = true
+//        )
+//    }
 
     /**
      * 根据nfc编号获取刷卡信息

+ 31 - 28
app/src/main/java/com/grkj/iscs/util/NetHttpManager.kt

@@ -80,10 +80,12 @@ class NetHttpManager {
                     itPreChain.proceed()
                     return@addSerialPreprocessor
                 }
-                requestTokenAndRefreshIfExpired {
-                    itPreChain.task.addHeader("Authorization", it)
-                    itPreChain.proceed()
-                }
+//                requestTokenAndRefreshIfExpired {
+//                    itPreChain.task.addHeader("Authorization", it)
+//                    itPreChain.proceed()
+//                }
+                itPreChain.task.addHeader("Authorization", Token.fromSp(context!!)?.token)
+                itPreChain.proceed()
             }
             .build()
     }
@@ -117,30 +119,31 @@ class NetHttpManager {
             ToastUtils.tip(context!!.resources.getString(R.string.please_login))
             return
         }
-        myHttp.async(LOGIN_CARD)
-            .skipPreproc()
-            .addBodyPara("cardNfc", loginUser.cardNfc)
-            .nextOnIO()
-            .setOnResponse {
-                exceptionCount = 0
-                if (!it.isSuccessful) {
-                    callback(null)
-                    return@setOnResponse
-                }
-                try {
-                    val newToken = it.body.toBean(Token::class.java)
-                    newToken.saveToSp(context!!)
-                    callback(newToken.token)
-                } catch (e: Exception) {
-                    callback(null)
-                    return@setOnResponse
-                }
-            }
-            .setOnException {
-                evictHttpConnectPool(it)
-                callback(null)
-            }
-            .post()
+//        myHttp.async(LOGIN_CARD)
+//            .skipPreproc()
+//            .addBodyPara("cardNfc", loginUser.cardNfc)
+//            .nextOnIO()
+//            .setOnResponse {
+//                exceptionCount = 0
+//                if (!it.isSuccessful) {
+//                    callback(null)
+//                    return@setOnResponse
+//                }
+//                try {
+//                    val newToken = it.body.toBean(Token::class.java)
+//                    newToken.saveToSp(context!!)
+//                    callback(newToken.token)
+//                } catch (e: Exception) {
+//                    callback(null)
+//                    return@setOnResponse
+//                }
+//            }
+//            .setOnException {
+//                evictHttpConnectPool(it)
+//                callback(null)
+//            }
+//            .post()
+        callback(null)
     }
 
     fun doRequestNet(

+ 14 - 29
app/src/main/java/com/grkj/iscs/util/SPUtils.kt

@@ -3,10 +3,11 @@ package com.grkj.iscs.util
 import android.content.Context
 import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
+import com.grkj.iscs.model.bo.LoginUserBO
 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.model.vo.user.UserInfoRespVO
 import com.grkj.iscs.util.log.LogUtil
 
 object SPUtils {
@@ -33,50 +34,34 @@ object SPUtils {
 
     private const val KEY_SYSTEM_ATTRIBUTE = "system_attribute"
 
-    fun getLoginUser(context: Context): CardInfoRespVO? {
+    fun getLoginUser(context: Context): LoginUserBO? {
         val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
-        if (sp.getString(KEY_LOGIN_USER_CARD_NFC, null) == null) {
+        if (sp.getLong(KEY_LOGIN_USER_USER_ID, -1) == -1L) {
             return null
         }
-        return CardInfoRespVO(
-            cardId = sp.getLong(KEY_LOGIN_USER_CARD_ID, 0),
-            cardCode = sp.getString(KEY_LOGIN_USER_CARD_CODE, null),
-            hardwareId = sp.getLong(KEY_LOGIN_USER_HARDWARE_ID, 0),
-            cardNfc = sp.getString(KEY_LOGIN_USER_CARD_NFC, null),
-            cardType = sp.getInt(KEY_LOGIN_USER_CARD_TYPE, 0),
+        return LoginUserBO(
             userId = sp.getLong(KEY_LOGIN_USER_USER_ID, 0),
             userName = sp.getString(KEY_LOGIN_USER_USER_NAME, null),
-            roleKeyList = sp.getString(KEY_LOGIN_USER_ROLE_KEY, null)?.split(",")?.toMutableList()
+            roleKeyList = sp.getString(KEY_LOGIN_USER_ROLE_KEY, null)?.split(",")?.toMutableList(),
+            userCardList = sp.getString(KEY_LOGIN_USER_CARD_NFC, null)?.split(",")?.toMutableList()
         )
     }
 
-    fun setLoginUser(context: Context, cardInfoRespVO: CardInfoRespVO) {
+    fun setLoginUser(context: Context, userInfoRespVO: UserInfoRespVO) {
         val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
         val edit = sp.edit()
-        cardInfoRespVO.cardId?.let {
-            edit.putLong(KEY_LOGIN_USER_CARD_ID, it)
-        }
-        cardInfoRespVO.cardCode?.let {
-            edit.putString(KEY_LOGIN_USER_CARD_CODE, it)
-        }
-        cardInfoRespVO.hardwareId?.let {
-            edit.putLong(KEY_LOGIN_USER_HARDWARE_ID, it)
-        }
-        cardInfoRespVO.cardNfc?.let {
-            edit.putString(KEY_LOGIN_USER_CARD_NFC, it)
-        }
-        cardInfoRespVO.cardType?.let {
-            edit.putInt(KEY_LOGIN_USER_CARD_TYPE, it)
-        }
-        cardInfoRespVO.userId?.let {
+        userInfoRespVO.user?.userId?.let {
             edit.putLong(KEY_LOGIN_USER_USER_ID, it)
         }
-        cardInfoRespVO.userName?.let {
+        userInfoRespVO.user?.userName?.let {
             edit.putString(KEY_LOGIN_USER_USER_NAME, it)
         }
-        cardInfoRespVO.roleKeyList?.let {
+        userInfoRespVO.roles?.let {
             edit.putString(KEY_LOGIN_USER_ROLE_KEY, it.toString().replace("[", "").replace("]", ""))
         }
+        userInfoRespVO.userCardList?.let {
+            edit.putString(KEY_LOGIN_USER_CARD_NFC, it.toString().replace("[", "").replace("]", ""))
+        }
         edit.commit()
     }
 

+ 7 - 11
app/src/main/java/com/grkj/iscs/view/activity/LoginActivity.kt

@@ -11,7 +11,6 @@ import com.grkj.iscs.databinding.ActivityLoginBinding
 import com.grkj.iscs.extentions.toByteArrays
 import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.modbus.ModBusController
-import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.model.vo.user.UserInfoRespVO
 import com.grkj.iscs.util.AppUtils
 import com.grkj.iscs.util.FingerprintUtil
@@ -67,9 +66,9 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
     private fun showLoginDialog(loginType: Int) {
         cardLoginDialog ?: run {
             LogUtil.i("创建Swipe dialog : ${presenter == null}")
-            cardLoginDialog = LoginDialog(presenter, this) { isSuccess, cardInfoRespVO, userInfoRespVO ->
+            cardLoginDialog = LoginDialog(presenter, this) { isSuccess, userInfoRespVO ->
                 if (isSuccess) {
-                    goHome(cardInfoRespVO, userInfoRespVO)
+                    goHome(userInfoRespVO)
                 }
             }
         }
@@ -87,9 +86,9 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
         FingerprintUtil.start()
         FingerprintUtil.setScanListener(object : FingerprintUtil.OnScanListener {
             override fun onScan(bitmap: Bitmap) {
-                presenter?.fingerprintLogin(bitmap) { isSuccess, cardInfoRespVO, userInfoRespVO ->
+                presenter?.fingerprintLogin(bitmap) { isSuccess, userInfoRespVO ->
                     if (isSuccess) {
-                        goHome(cardInfoRespVO, userInfoRespVO)
+                        goHome(userInfoRespVO)
                     }
                 }
             }
@@ -102,9 +101,9 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
             if (event.keyCode == 66) {
                 cardNo = cardNo.toLong().toByteArrays().toHexStrings(false)
                 LogUtil.i("Swipe card login: $cardNo")
-                presenter?.cardLogin(cardNo) { isSuccess, cardInfoRespVO, userInfoRespVO ->
+                presenter?.cardLogin(cardNo) { isSuccess, userInfoRespVO ->
                     if (isSuccess) {
-                        goHome(cardInfoRespVO, userInfoRespVO)
+                        goHome(userInfoRespVO)
                     }
                 }
                 // 重置cardNo
@@ -116,11 +115,8 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
         return super.dispatchKeyEvent(event)
     }
 
-    private fun goHome(cardInfoRespVO: CardInfoRespVO?, userInfoRespVO: UserInfoRespVO?) {
+    private fun goHome(userInfoRespVO: UserInfoRespVO?) {
         val intent = Intent(this@LoginActivity, HomeActivity::class.java)
-        if (cardInfoRespVO != null) {
-            intent.putExtra("cardInfo", cardInfoRespVO)
-        }
         if (userInfoRespVO != null) {
             intent.putExtra("userInfo", userInfoRespVO)
         }

+ 9 - 10
app/src/main/java/com/grkj/iscs/view/dialog/LoginDialog.kt

@@ -9,7 +9,6 @@ import com.grkj.iscs.R
 import com.grkj.iscs.databinding.DialogLoginBinding
 import com.grkj.iscs.extentions.toByteArrays
 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.FingerprintUtil
@@ -19,7 +18,7 @@ import com.grkj.iscs.view.base.BaseActivity
 import com.grkj.iscs.view.base.BaseDialog
 import com.grkj.iscs.view.presenter.LoginPresenter
 
-class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, private var callBack: ((Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit)? = null) :
+class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, private var callBack: ((Boolean, UserInfoRespVO?) -> Unit)? = null) :
     BaseDialog<DialogLoginBinding>(ctx) {
 
     private var cardNo = ""
@@ -35,11 +34,11 @@ 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 ->
+            presenter?.login(ctx, mBinding?.etAccount?.text.toString(), mBinding?.etPassword?.text.toString()) { isSuccess, userInfoRespVO ->
                 if (isSuccess) {
                     dismiss()
                 }
-                callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
+                callBack?.invoke(isSuccess, userInfoRespVO)
             }
         }
         mBinding?.tvCancel?.setOnClickListener { dismiss() }
@@ -72,11 +71,11 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
                     FingerprintUtil.start()
                     FingerprintUtil.setScanListener(object : FingerprintUtil.OnScanListener {
                         override fun onScan(bitmap: Bitmap) {
-                            presenter?.fingerprintLogin(bitmap) { isSuccess, cardInfoRespVO, userInfoRespVO ->
+                            presenter?.fingerprintLogin(bitmap) { isSuccess, userInfoRespVO ->
                                 if (isSuccess) {
                                     dismiss()
                                 }
-                                callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
+                                callBack?.invoke(isSuccess, userInfoRespVO)
                             }
                         }
                     })
@@ -103,11 +102,11 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
             if (event.keyCode == 66) {
                 cardNo = cardNo.toLong().toByteArrays().toHexStrings(false)
                 LogUtil.i("Swipe card login: $cardNo")
-                presenter?.cardLogin(cardNo) { isSuccess, cardInfoRespVO, userInfoRespVO ->
+                presenter?.cardLogin(cardNo) { isSuccess, userInfoRespVO ->
                     if (isSuccess) {
                         dismiss()
                     }
-                    callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
+                    callBack?.invoke(isSuccess, userInfoRespVO)
                 }
                 // 重置cardNo
                 cardNo = ""
@@ -124,12 +123,12 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
             it?.let { itBitmap ->
                 BusinessManager.sendLoadingEventMsg(context.getString(R.string.face_detected_do_login))
                 ArcSoftUtil.stop()
-                presenter?.faceLogin(itBitmap) { isSuccess, cardInfoRespVO, userInfoRespVO ->
+                presenter?.faceLogin(itBitmap) { isSuccess, userInfoRespVO ->
                     BusinessManager.sendLoadingEventMsg(null, false)
                     if (isSuccess) {
                         dismiss()
                     }
-                    callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
+                    callBack?.invoke(isSuccess, userInfoRespVO)
                 }
             }
         }

+ 14 - 14
app/src/main/java/com/grkj/iscs/view/fragment/JobProgressFragment.kt

@@ -88,18 +88,18 @@ class JobProgressFragment(val goBack: () -> Unit) :
         }
 
         observer = Observer { newData ->
-            when (newData.code) {
-                MSG_EVENT_UPDATE_TICKET_PROGRESS -> {
-                    LogUtil.i("Update progress msg, isVisible : $isVisible")
-                    if (isVisible) {
-                        val ticketId = (newData.data as UpdateTicketProgressMsg).ticketId
-                        LogUtil.i("Update progress msg, ticketId : $ticketId")
-                        if (ticketId == mPageChangeBO?.ticketId) {
-                            mPageChangeBO?.let {
-                                refreshPage(it)
-                            }
-                        }
-                    }
+            if (newData.code != MSG_EVENT_UPDATE_TICKET_PROGRESS) {
+                return@Observer
+            }
+            LogUtil.i("Update progress msg, isVisible : $isVisible")
+            if (!isVisible) {
+                return@Observer
+            }
+            val ticketId = (newData.data as UpdateTicketProgressMsg).ticketId
+            LogUtil.i("Update progress msg, ticketId : $ticketId")
+            if (ticketId == mPageChangeBO?.ticketId) {
+                mPageChangeBO?.let {
+                    refreshPage(it)
                 }
             }
         }
@@ -159,9 +159,9 @@ class JobProgressFragment(val goBack: () -> Unit) :
 
                 if (mStep == 6) {
                     if (jobStatus < 4) {
-                        mTipDialog?.setTip(getString(R.string.confirm_to_colock, cardNo))
+                        mTipDialog?.setTip(getString(R.string.confirm_to_colock, it.nickName))
                     } else {
-                        mTipDialog?.setTip(getString(R.string.confirm_to_uncolock, cardNo))
+                        mTipDialog?.setTip(getString(R.string.confirm_to_uncolock, it.nickName))
                     }
                     mTipDialog?.setConfirmListener {
                         presenter?.updateColockerStatus(mPageChangeBO?.ticketId!!, cardNo, if (jobStatus < 4) "4" else "5") {

+ 18 - 20
app/src/main/java/com/grkj/iscs/view/presenter/LoginPresenter.kt

@@ -10,7 +10,6 @@ import com.grkj.iscs.modbus.ModBusController
 import com.grkj.iscs.model.Constants
 import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_CARD
 import com.grkj.iscs.model.vo.FileStreamReqParam
-import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.model.vo.user.UserInfoRespVO
 import com.grkj.iscs.util.BitmapUtil
 import com.grkj.iscs.util.Executor
@@ -23,7 +22,7 @@ import com.grkj.iscs.view.iview.ILoginView
 
 class LoginPresenter : BasePresenter<ILoginView>() {
 
-    fun login(context: Context, account: String, pwd: String, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
+    fun login(context: Context, account: String, pwd: String, callBack: (Boolean, UserInfoRespVO?) -> Unit) {
         if (account.isEmpty()) {
             ToastUtils.tip(context.getString(R.string.please_input_account))
             return
@@ -37,50 +36,49 @@ class LoginPresenter : BasePresenter<ILoginView>() {
         }
     }
 
-    fun cardLogin(card: String, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
+    fun cardLogin(card: String, callBack: (Boolean, UserInfoRespVO?) -> Unit) {
         BusinessManager.sendLoadingEventMsg(mContext?.getString(R.string.doing_login))
         NetApi.cardLogin(card) {
             commonProcess(it, callBack)
         }
     }
 
-    fun fingerprintLogin(bitmap: Bitmap, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
+    fun fingerprintLogin(bitmap: Bitmap, callBack: (Boolean, UserInfoRespVO?) -> Unit) {
         BusinessManager.sendLoadingEventMsg(mContext?.getString(R.string.doing_login))
         NetApi.loginByFingerprint(mutableListOf(FileStreamReqParam("file", BitmapUtil.bitmapToByteArray(bitmap), ".bmp"))) {
             commonProcess(it, callBack)
         }
     }
 
-    fun faceLogin(bitmap: Bitmap, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
+    fun faceLogin(bitmap: Bitmap, callBack: (Boolean, UserInfoRespVO?) -> Unit) {
         BusinessManager.sendLoadingEventMsg(mContext?.getString(R.string.doing_login))
         NetApi.loginByFace(mutableListOf(FileStreamReqParam("file", BitmapUtil.bitmapToByteArray(bitmap), ".bmp"))) {
             commonProcess(it, callBack)
         }
     }
 
-    private fun commonProcess(loginRst: Boolean?, callBack: (Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit) {
+    private fun commonProcess(loginRst: Boolean?, callBack: (Boolean, UserInfoRespVO?) -> Unit) {
         if (loginRst == true) {
             NetApi.getUserInfo { userInfo ->
-                NetApi.getCardInfoByLoginUser { itInfo ->
-                    NetApi.getSystemAttributePage(1, -1) { itSys ->
-                        BusinessManager.sendLoadingEventMsg(null, false)
-                        itSys?.let { sys ->
-                            SPUtils.saveSystemAttribute(mContext!!, sys.records)
-                        }
-                        Constants.updateRole(mContext!!)
-                        itInfo?.let { info ->
-                            SPUtils.setLoginUser(mContext!!, info)
-                        }
-                        Executor.runOnMain {
-                            callBack.invoke(loginRst, itInfo, userInfo)
-                        }
+                println("haha1 : $userInfo")
+                userInfo?.let { info ->
+                    SPUtils.setLoginUser(mContext!!, info)
+                }
+                NetApi.getSystemAttributePage(1, -1) { itSys ->
+                    BusinessManager.sendLoadingEventMsg(null, false)
+                    itSys?.let { sys ->
+                        SPUtils.saveSystemAttribute(mContext!!, sys.records)
+                    }
+                    Constants.updateRole(mContext!!)
+                    Executor.runOnMain {
+                        callBack.invoke(loginRst, userInfo)
                     }
                 }
             }
         } else {
             Executor.runOnMain {
                 BusinessManager.sendLoadingEventMsg(null, false)
-                callBack.invoke(false, null, null)
+                callBack.invoke(false, null)
             }
         }
     }