Ver Fonte

添加获取刷卡信息接口;首页界面根据刷卡信息变化;修改登录流程,补充获取刷卡信息;补充常量;添加清除App退出登录用户;工作票分页接口补充userId字段

Frankensteinly há 1 ano atrás
pai
commit
31ebbebbca
25 ficheiros alterados com 244 adições e 77 exclusões
  1. 6 0
      app/src/main/java/com/grkj/iscs/MyApplication.kt
  2. 2 2
      app/src/main/java/com/grkj/iscs/activity/CreateTicketActivity.kt
  3. 33 15
      app/src/main/java/com/grkj/iscs/activity/HomeActivity.kt
  4. 7 3
      app/src/main/java/com/grkj/iscs/activity/LoginActivity.kt
  5. 2 2
      app/src/main/java/com/grkj/iscs/activity/TicketListActivity.kt
  6. 9 3
      app/src/main/java/com/grkj/iscs/fragment/TicketListFragment.kt
  7. 1 1
      app/src/main/java/com/grkj/iscs/iview/ICreateTicketView.kt
  8. 12 0
      app/src/main/java/com/grkj/iscs/model/Constants.kt
  9. 9 1
      app/src/main/java/com/grkj/iscs/model/UrlConsts.kt
  10. 14 0
      app/src/main/java/com/grkj/iscs/model/vo/card/CardInfoRespVO.kt
  11. 1 1
      app/src/main/java/com/grkj/iscs/model/vo/dept/DeptListRespVO.kt
  12. 1 1
      app/src/main/java/com/grkj/iscs/model/vo/sop/SopInfoRespVO.kt
  13. 1 1
      app/src/main/java/com/grkj/iscs/model/vo/sop/SopPageRespVO.kt
  14. 1 1
      app/src/main/java/com/grkj/iscs/model/vo/ticket/CreateTicketReqVO.kt
  15. 1 1
      app/src/main/java/com/grkj/iscs/model/vo/ticket/TicketPageRespVO.kt
  16. 1 1
      app/src/main/java/com/grkj/iscs/model/vo/ticket/TicketTypeRespVO.kt
  17. 1 1
      app/src/main/java/com/grkj/iscs/model/vo/user/UserListRespVO.kt
  18. 3 3
      app/src/main/java/com/grkj/iscs/presenter/CreateTicketPresenter.kt
  19. 10 3
      app/src/main/java/com/grkj/iscs/presenter/HomePresenter.kt
  20. 13 2
      app/src/main/java/com/grkj/iscs/presenter/LoginPresenter.kt
  21. 4 4
      app/src/main/java/com/grkj/iscs/presenter/TicketListPresenter.kt
  22. 43 21
      app/src/main/java/com/grkj/iscs/util/NetApi.kt
  23. 2 2
      app/src/main/java/com/grkj/iscs/util/NetHttpManager.kt
  24. 61 5
      app/src/main/java/com/grkj/iscs/util/SPUtils.kt
  25. 6 3
      app/src/main/res/layout/activity_home.xml

+ 6 - 0
app/src/main/java/com/grkj/iscs/MyApplication.kt

@@ -8,6 +8,7 @@ import com.grkj.iscs.model.Token
 import com.grkj.iscs.util.FileUtil
 import com.grkj.iscs.util.NetApi
 import com.grkj.iscs.util.NetHttpManager
+import com.grkj.iscs.util.SPUtils
 import com.grkj.iscs.util.log.LogUtil
 
 class MyApplication : Application() {
@@ -31,4 +32,9 @@ class MyApplication : Application() {
         super.attachBaseContext(base)
         MultiDex.install(base)
     }
+
+    override fun onTerminate() {
+        super.onTerminate()
+        SPUtils.clearLoginUser(this)
+    }
 }

+ 2 - 2
app/src/main/java/com/grkj/iscs/activity/CreateTicketActivity.kt

@@ -5,8 +5,8 @@ import com.grkj.iscs.R
 import com.grkj.iscs.base.BaseMvpActivity
 import com.grkj.iscs.databinding.ActivityCreateTicketBinding
 import com.grkj.iscs.iview.ICreateTicketView
-import com.grkj.iscs.model.vo.CreateTicketReqVO
-import com.grkj.iscs.model.vo.SopPageRespVO
+import com.grkj.iscs.model.vo.ticket.CreateTicketReqVO
+import com.grkj.iscs.model.vo.sop.SopPageRespVO
 import com.grkj.iscs.presenter.CreateTicketPresenter
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.widget.SelectableInput

+ 33 - 15
app/src/main/java/com/grkj/iscs/activity/HomeActivity.kt

@@ -1,9 +1,15 @@
 package com.grkj.iscs.activity
 
 import android.content.Intent
+import android.view.View
 import com.grkj.iscs.base.BaseMvpActivity
 import com.grkj.iscs.databinding.ActivityHomeBinding
 import com.grkj.iscs.iview.IHomeView
+import com.grkj.iscs.model.Constants.USER_ROLE_COLOCKER
+import com.grkj.iscs.model.Constants.USER_ROLE_DRAWER
+import com.grkj.iscs.model.Constants.USER_ROLE_GUARD
+import com.grkj.iscs.model.Constants.USER_ROLE_LOCKER
+import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.presenter.HomePresenter
 
 class HomeActivity : BaseMvpActivity<IHomeView, HomePresenter, ActivityHomeBinding>() {
@@ -12,26 +18,38 @@ class HomeActivity : BaseMvpActivity<IHomeView, HomePresenter, ActivityHomeBindi
         get() = ActivityHomeBinding.inflate(layoutInflater)
 
     override fun initView() {
-        mBinding?.tvCreate?.setOnClickListener {
-            startActivity(Intent(this, CreateTicketActivity::class.java))
-        }
-        mBinding?.tvCurrent?.setOnClickListener {
-            startActivity(Intent(this, TicketListActivity::class.java).apply {
-                putExtra("status", "1")
-            })
-        }
-        mBinding?.tvHistory?.setOnClickListener {
-            startActivity(Intent(this, TicketListActivity::class.java).apply {
-                putExtra("status", "0")
-            })
-        }
-
         mBinding?.tvExit?.setOnClickListener {
             // TODO 退出登录,清除token
             finish()
         }
 
-        presenter?.getTicketCount {
+        val cardInfo = intent.getSerializableExtra("cardInfo") ?: return
+        (cardInfo as CardInfoRespVO).roleKeyList?.let {
+            if (it.contains(USER_ROLE_DRAWER)) {
+                mBinding?.tvCreate?.visibility = View.VISIBLE
+                mBinding?.tvCreate?.setOnClickListener {
+                    startActivity(Intent(this, CreateTicketActivity::class.java))
+                }
+            }
+            if (it.contains(USER_ROLE_LOCKER) || it.contains(USER_ROLE_COLOCKER)) {
+                mBinding?.tvCurrent?.visibility = View.VISIBLE
+                mBinding?.tvCurrent?.setOnClickListener {
+                    startActivity(Intent(this, TicketListActivity::class.java).apply {
+                        putExtra("status", "1")
+                    })
+                }
+            }
+            if (it.contains(USER_ROLE_GUARD)) {
+                mBinding?.tvHistory?.visibility = View.VISIBLE
+                mBinding?.tvHistory?.setOnClickListener {
+                    startActivity(Intent(this, TicketListActivity::class.java).apply {
+                        putExtra("status", "0")
+                    })
+                }
+            }
+        }
+
+        presenter?.getTicketCount(null) {
             mBinding?.tvCount?.text = it.toString()
         }
     }

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

@@ -17,9 +17,13 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
 
     override fun initView() {
         mBinding?.btnConfirm?.setOnClickListener {
-            presenter?.login(this, mBinding?.etAccount?.text.toString(), mBinding?.etPassword?.text.toString()) {
-                if (it) {
-                    startActivity(Intent(this, HomeActivity::class.java))
+            presenter?.login(this, mBinding?.etAccount?.text.toString(), mBinding?.etPassword?.text.toString()) { itLoginRst, itCardInfo ->
+                if (itLoginRst) {
+                    val intent = Intent(this, HomeActivity::class.java)
+                    if (itCardInfo != null) {
+                        intent.putExtra("cardInfo", itCardInfo)
+                    }
+                    startActivity(intent)
                 }
             }
         }

+ 2 - 2
app/src/main/java/com/grkj/iscs/activity/TicketListActivity.kt

@@ -15,7 +15,7 @@ class TicketListActivity : BaseActivity<ActivityTicketListBinding>() {
     override fun initView() {
         mBinding?.tvExit?.setOnClickListener { finish() }
 
-        mBinding?.rvTab?.setData(mutableListOf("待办工单", "已办工单", "历史工单"))
+        mBinding?.rvTab?.setData(mutableListOf("未开始", "待上锁", "进行中", "待解锁"))
 
         mBinding?.rvTab?.onItemClick = {
             mBinding?.vp?.currentItem = it
@@ -28,7 +28,7 @@ class TicketListActivity : BaseActivity<ActivityTicketListBinding>() {
 
             override fun getItemCount(): Int {
                 // TODO 根据intent获取的值
-                return 3
+                return 4
             }
         }
 

+ 9 - 3
app/src/main/java/com/grkj/iscs/fragment/TicketListFragment.kt

@@ -4,9 +4,10 @@ import com.grkj.iscs.R
 import com.grkj.iscs.base.BaseMvpFragment
 import com.grkj.iscs.databinding.FragmentTicketListBinding
 import com.grkj.iscs.iview.ITicketListView
-import com.grkj.iscs.model.vo.TicketPageRespVO
-import com.grkj.iscs.presentation.PresentationManager
+import com.grkj.iscs.model.vo.ticket.TicketPageRespVO
 import com.grkj.iscs.presenter.TicketListPresenter
+import com.grkj.iscs.util.SPUtils
+import com.grkj.iscs.util.ToastUtils
 import com.zhy.adapter.recyclerview.CommonAdapter
 import com.zhy.adapter.recyclerview.base.ViewHolder
 
@@ -50,7 +51,12 @@ class TicketListFragment(var type: Int) :
             }
         }
 
-        presenter?.getTicketPage {
+        val cardInfo = SPUtils.getLoginUser(requireContext())
+        if (cardInfo.cardNfc == null || cardInfo.userId == 0L) {
+            ToastUtils.tip(resources.getString(R.string.please_login))
+            return
+        }
+        presenter?.getTicketPage(cardInfo.userId!!, type) {
             if (!it?.records.isNullOrEmpty()) {
                 dataList.addAll(it?.records!!)
                 mBinding?.rvCurrent?.adapter?.notifyDataSetChanged()

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

@@ -1,7 +1,7 @@
 package com.grkj.iscs.iview
 
 import com.grkj.iscs.base.IView
-import com.grkj.iscs.model.vo.SopPageRespVO
+import com.grkj.iscs.model.vo.sop.SopPageRespVO
 
 interface ICreateTicketView : IView {
 

+ 12 - 0
app/src/main/java/com/grkj/iscs/model/Constants.kt

@@ -4,4 +4,16 @@ object Constants {
     const val PERMISSION_REQUEST_CODE = 1
     const val BLE_LOCAL_NAME = "keyLock"
 
+    /**************************  角色  **************************/
+    const val USER_ROLE_DRAWER = "jtdrawer"         // 作业管理员/开票人
+    const val USER_ROLE_LOCKER = "jtlocker"         // 作业负责人/上锁人
+    const val USER_ROLE_COLOCKER = "jtcolocker"     // 作业参与人/共锁人
+    const val USER_ROLE_GUARD = "jtguard"           // 作业观察员/安全员
+
+    /*************************  作业票状态  *************************/
+    const val TICKET_STATUS_NOT_STARTED = 0         // 未开始
+    const val TICKET_STATUS_READY_TO_LOCK = 1       // 待上锁
+    const val TICKET_STATUS_PROCESSING = 2          // 进行中
+    const val TICKET_STATUS_READY_TO_UNLOCK = 3     // 待解锁
+    const val TICKET_STATUS_FINISHED = 4            // 已结束
 }

+ 9 - 1
app/src/main/java/com/grkj/iscs/model/UrlConsts.kt

@@ -2,7 +2,7 @@ package com.grkj.iscs.model
 
 object UrlConsts {
     //    const val BASE_URL = "http://192.168.1.127:9090"
-    const val BASE_URL = "http://192.168.1.11:9090"
+    const val BASE_URL = "http://192.168.1.246:9090"
     const val WEB_SOCKET = "ws://192.168.1.127:9090/websocket/iot/127"
 
     const val AUTOCODE_TICKET_NUMBER = "JOB_TICKET_CODE"
@@ -52,5 +52,13 @@ object UrlConsts {
      */
     const val PAGE_TICKET = "/iscs/ticket/getIsJobTicketPage"
 
+    /**
+     * 刷卡登录
+     */
     const val LOGIN_CARD = "/iscs/card/login"
+
+    /**
+     * 获取刷卡信息
+     */
+    const val CARD_INFO = "/iscs/card/selectIsJobCardByLoginUser"
 }

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

@@ -0,0 +1,14 @@
+package com.grkj.iscs.model.vo.card
+
+import java.io.Serializable
+
+data class CardInfoRespVO(
+    var cardId: Long?,
+    var cardCode: String?,
+    var hardwareId: Long?,
+    var cardNfc: String?,
+    var cardType: Int?,
+    var userId: Long?,
+    var userName: String?,
+    var roleKeyList: List<String>?
+): Serializable

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/DeptListRespVO.kt → app/src/main/java/com/grkj/iscs/model/vo/dept/DeptListRespVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.dept
 
 data class DeptListRespVO(
     /** 部门ID */

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/SopInfoRespVO.kt → app/src/main/java/com/grkj/iscs/model/vo/sop/SopInfoRespVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.sop
 
 data class SopInfoRespVO(
     val sopId: Long?,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/SopPageRespVO.kt → app/src/main/java/com/grkj/iscs/model/vo/sop/SopPageRespVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.sop
 
 data class SopPageRespVO(
     val current: Int,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/CreateTicketReqVO.kt → app/src/main/java/com/grkj/iscs/model/vo/ticket/CreateTicketReqVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.ticket
 
 data class CreateTicketReqVO(
     val ticketCode: String?,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/TicketPageRespVO.kt → app/src/main/java/com/grkj/iscs/model/vo/ticket/TicketPageRespVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.ticket
 
 data class TicketPageRespVO(
     val current: Int,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/TicketTypeRespVO.kt → app/src/main/java/com/grkj/iscs/model/vo/ticket/TicketTypeRespVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.ticket
 
 data class TicketTypeRespVO(
     val createBy: String,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/UserListRespVO.kt → app/src/main/java/com/grkj/iscs/model/vo/user/UserListRespVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.user
 
 data class UserListRespVO(
     val code: Int,

+ 3 - 3
app/src/main/java/com/grkj/iscs/presenter/CreateTicketPresenter.kt

@@ -4,9 +4,9 @@ import com.grkj.iscs.R
 import com.grkj.iscs.base.BasePresenter
 import com.grkj.iscs.iview.ICreateTicketView
 import com.grkj.iscs.model.UrlConsts
-import com.grkj.iscs.model.vo.CreateTicketReqVO
-import com.grkj.iscs.model.vo.SopPageRespVO
-import com.grkj.iscs.model.vo.TicketTypeRespVO
+import com.grkj.iscs.model.vo.ticket.CreateTicketReqVO
+import com.grkj.iscs.model.vo.sop.SopPageRespVO
+import com.grkj.iscs.model.vo.ticket.TicketTypeRespVO
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.NetApi
 import com.grkj.iscs.util.ToastUtils

+ 10 - 3
app/src/main/java/com/grkj/iscs/presenter/HomePresenter.kt

@@ -1,15 +1,22 @@
 package com.grkj.iscs.presenter
 
+import com.grkj.iscs.R
 import com.grkj.iscs.base.BasePresenter
 import com.grkj.iscs.iview.IHomeView
-import com.grkj.iscs.model.vo.TicketPageRespVO
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.NetApi
+import com.grkj.iscs.util.SPUtils
+import com.grkj.iscs.util.ToastUtils
 
 class HomePresenter : BasePresenter<IHomeView>() {
 
-    fun getTicketCount(callBack: (Int?) -> Unit) {
-        NetApi.getTicketPage(0, 10) {
+    fun getTicketCount(ticketStatus: Int?, callBack: (Int?) -> Unit) {
+        val userId = SPUtils.getLoginUser(mContext!!).userId
+        if (userId == null) {
+            ToastUtils.tip(mContext!!.resources.getString(R.string.please_login))
+            return
+        }
+        NetApi.getTicketPage(0, 10, userId, ticketStatus) {
             Executor.runOnMain {
                 callBack.invoke(it?.total)
             }

+ 13 - 2
app/src/main/java/com/grkj/iscs/presenter/LoginPresenter.kt

@@ -17,17 +17,19 @@ import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_KEY
 import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_LOCK
 import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
 import com.grkj.iscs.model.WorkTicketStatusBean
+import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.presentation.LockerActivity
 import com.grkj.iscs.presentation.LockerTogetherActivity
 import com.grkj.iscs.presentation.PresentationManager
 import com.grkj.iscs.util.ActivityUtils
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.NetApi
+import com.grkj.iscs.util.SPUtils
 import com.grkj.iscs.util.ToastUtils
 
 class LoginPresenter : BasePresenter<ILoginView>() {
 
-    fun login(context: Context, account: String, pwd: String, callBack: (Boolean) -> Unit) {
+    fun login(context: Context, account: String, pwd: String, callBack: (Boolean, CardInfoRespVO?) -> Unit) {
         if (account.isEmpty()) {
             ToastUtils.tip(context.getString(R.string.please_input_account))
             return
@@ -36,7 +38,16 @@ class LoginPresenter : BasePresenter<ILoginView>() {
             return
         }
         NetApi.login(account, pwd) {
-            callBack.invoke(it!!)
+            if (it == true) {
+                NetApi.getCardInfo { itInfo ->
+                    itInfo?.let { info ->
+                        SPUtils.setLoginUser(mContext!!, info)
+                    }
+                    callBack.invoke(it, itInfo)
+                }
+            } else {
+                callBack.invoke(false, null)
+            }
         }
     }
 

+ 4 - 4
app/src/main/java/com/grkj/iscs/presenter/TicketListPresenter.kt

@@ -2,8 +2,8 @@ package com.grkj.iscs.presenter
 
 import com.grkj.iscs.base.BasePresenter
 import com.grkj.iscs.iview.ITicketListView
-import com.grkj.iscs.model.vo.TicketPageRespVO
-import com.grkj.iscs.model.vo.TicketTypeRespVO
+import com.grkj.iscs.model.vo.ticket.TicketPageRespVO
+import com.grkj.iscs.model.vo.ticket.TicketTypeRespVO
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.NetApi
 
@@ -11,8 +11,8 @@ class TicketListPresenter : BasePresenter<ITicketListView>() {
 
     var mTicketTypeList = mutableListOf<TicketTypeRespVO>()
 
-    fun getTicketPage(callBack: (TicketPageRespVO?) -> Unit) {
-        NetApi.getTicketPage(0, 10) {
+    fun getTicketPage(userId: Long, ticketStatus: Int?, callBack: (TicketPageRespVO?) -> Unit) {
+        NetApi.getTicketPage(0, 10, userId, ticketStatus) {
             Executor.runOnMain {
                 callBack.invoke(it)
             }

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

@@ -3,12 +3,13 @@ package com.grkj.iscs.util
 import com.grkj.iscs.MyApplication
 import com.grkj.iscs.model.Token
 import com.grkj.iscs.model.UrlConsts
-import com.grkj.iscs.model.vo.DeptListRespVO
-import com.grkj.iscs.model.vo.SopInfoRespVO
-import com.grkj.iscs.model.vo.SopPageRespVO
-import com.grkj.iscs.model.vo.TicketPageRespVO
-import com.grkj.iscs.model.vo.TicketTypeRespVO
-import com.grkj.iscs.model.vo.UserListRespVO
+import com.grkj.iscs.model.vo.card.CardInfoRespVO
+import com.grkj.iscs.model.vo.dept.DeptListRespVO
+import com.grkj.iscs.model.vo.sop.SopInfoRespVO
+import com.grkj.iscs.model.vo.sop.SopPageRespVO
+import com.grkj.iscs.model.vo.ticket.TicketPageRespVO
+import com.grkj.iscs.model.vo.ticket.TicketTypeRespVO
+import com.grkj.iscs.model.vo.user.UserListRespVO
 
 /**
  * 网络请求
@@ -25,7 +26,7 @@ object NetApi {
                 "username" to username,
                 "password" to password
             ),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     val newToken = it.toBean(Token::class.java)
                     newToken.saveToSp(MyApplication.instance!!.applicationContext)
@@ -44,7 +45,7 @@ object NetApi {
             mapOf(
                 "cardNfc" to cardNfc
             ),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     val newToken = it.toBean(Token::class.java)
                     newToken.saveToSp(MyApplication.instance!!.applicationContext)
@@ -64,7 +65,7 @@ object NetApi {
                 "current" to current,
                 "size" to size
             ),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     callBack.invoke(getRefBean(it))
                 }
@@ -79,7 +80,7 @@ object NetApi {
             UrlConsts.TICKET_TYPE,
             false,
             mapOf<String,String>(),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     callBack.invoke(getRefBean(it))
                 }
@@ -94,7 +95,7 @@ object NetApi {
             UrlConsts.AUTO_CODE + "/" +type,
             false,
             mapOf<String, String>(),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     callBack.invoke(it.toString())
                 }
@@ -111,7 +112,7 @@ object NetApi {
             mapOf(
                 "sopId" to sopId
             ),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     callBack.invoke(getRefBean(it))
                 }
@@ -129,7 +130,7 @@ object NetApi {
                 "pageNum" to pageNum,
                 "pageSize" to pageSize
             ),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     callBack.invoke(it.toBean(UserListRespVO::class.java))
                 }
@@ -147,7 +148,7 @@ object NetApi {
                 "pageNum" to pageNum,
                 "pageSize" to pageSize
             ),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     callBack.invoke(getRefBean(it))
                 }
@@ -163,7 +164,7 @@ object NetApi {
             UrlConsts.CREATE_TICKET,
             false,
             mapOf<String, String>(),
-            { res, errMsg, codeInt ->
+            { res, _, _ ->
                 res?.let {
                     //TODO 创建工作票结果
                 }
@@ -174,15 +175,36 @@ object NetApi {
     /**
      * 获取工作票分页
      */
-    fun getTicketPage(pageNum: Int, pageSize: Int, callBack: (TicketPageRespVO?) -> Unit) {
+    fun getTicketPage(pageNum: Int, pageSize: Int, userId: Long, ticketStatus: Int?, callBack: (TicketPageRespVO?) -> Unit) {
+        val map = mutableMapOf(
+            "pageNum" to pageNum,
+            "pageSize" to pageSize,
+            "userId" to userId
+        )
+        if (ticketStatus != null) {
+            map["ticketStatus"] = ticketStatus
+        }
         NetHttpManager.getInstance().doRequestNet(
             UrlConsts.PAGE_TICKET,
             false,
-            mapOf(
-                "pageNum" to pageNum,
-                "pageSize" to pageSize
-            ),
-            { res, errMsg, codeInt ->
+            map,
+            { res, _, _ ->
+                res?.let {
+                    callBack.invoke(getRefBean(it))
+                }
+            }, isGet = true, isAuth = true
+        )
+    }
+
+    /**
+     * 获取刷卡信息
+     */
+    fun getCardInfo(callBack: (CardInfoRespVO?) -> Unit) {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.CARD_INFO,
+            false,
+            mapOf<String, String>(),
+            { res, _, _ ->
                 res?.let {
                     callBack.invoke(getRefBean(it))
                 }

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

@@ -154,9 +154,9 @@ class NetHttpManager {
                             baseVO?.msg?.let { itMsg ->
                                 ToastUtils.tip(itMsg)
                             }
-                            var bobyStr = it.body.toString()
+                            val bobyStr = it.body.toString()
                             callback(
-                                null, if (bobyStr.isNullOrEmpty()) {
+                                null, if (bobyStr.isEmpty()) {
                                     it.toString()
                                 } else {
                                     bobyStr

+ 61 - 5
app/src/main/java/com/grkj/iscs/util/SPUtils.kt

@@ -1,19 +1,75 @@
 package com.grkj.iscs.util
 
 import android.content.Context
+import com.grkj.iscs.model.vo.card.CardInfoRespVO
 
 object SPUtils {
 
     private const val SP_NAME = "iscs"
-    private const val KEY_LOGIN_USER = "login_user"
 
-    fun getLoginUser(context: Context): String? {
+    private const val KEY_LOGIN_USER_CARD_ID = "card_id"
+    private const val KEY_LOGIN_USER_CARD_CODE = "card_code"
+    private const val KEY_LOGIN_USER_HARDWARE_ID = "hardware_id"
+    private const val KEY_LOGIN_USER_CARD_NFC = "card_nfc"
+    private const val KEY_LOGIN_USER_CARD_TYPE = "card_type"
+    private const val KEY_LOGIN_USER_USER_ID = "user_id"
+    private const val KEY_LOGIN_USER_USER_NAME = "user_name"
+    private const val KEY_LOGIN_USER_ROLE_KEY = "role_key"
+
+    fun getLoginUser(context: Context): CardInfoRespVO {
         val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
-        return sp.getString(KEY_LOGIN_USER, 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),
+            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()
+        )
     }
 
-    fun setLoginUser(context: Context, user: String) {
+    fun setLoginUser(context: Context, cardInfoRespVO: CardInfoRespVO) {
         val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
-        sp.edit().putString(KEY_LOGIN_USER, user).apply()
+        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 {
+            edit.putLong(KEY_LOGIN_USER_USER_ID, it)
+        }
+        cardInfoRespVO.userName?.let {
+            edit.putString(KEY_LOGIN_USER_USER_NAME, it)
+        }
+        cardInfoRespVO.roleKeyList?.let {
+            edit.putString(KEY_LOGIN_USER_ROLE_KEY, it.toString().replace("[", "").replace("]", ""))
+        }
+        edit.apply()
+    }
+
+    fun clearLoginUser(context: Context) : Boolean {
+        return try {
+            val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
+            val edit = sp.edit()
+            edit.clear()
+            edit.apply()
+            true
+        } catch (e: Exception) {
+            false
+        }
     }
 }

+ 6 - 3
app/src/main/res/layout/activity_home.xml

@@ -144,7 +144,8 @@
                 android:layout_weight="1"
                 android:background="@color/main_color"
                 android:orientation="vertical"
-                android:text="@string/create_ticket" />
+                android:text="@string/create_ticket"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/tv_current"
@@ -155,7 +156,8 @@
                 android:layout_weight="1"
                 android:background="@color/main_color"
                 android:orientation="vertical"
-                android:text="@string/current_tickets" />
+                android:text="@string/current_tickets"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/tv_history"
@@ -166,7 +168,8 @@
                 android:layout_weight="1"
                 android:background="@color/main_color"
                 android:orientation="vertical"
-                android:text="@string/history_tickets" />
+                android:text="@string/history_tickets"
+                android:visibility="gone" />
         </LinearLayout>
     </androidx.constraintlayout.widget.ConstraintLayout>