瀏覽代碼

feat:登录拦截

Zhenghanjv 5 月之前
父節點
當前提交
b947488796

+ 2 - 2
app/build.gradle

@@ -21,8 +21,8 @@ android {
         applicationId "com.doverfuelingsolutions.issp"
         minSdkVersion 22
         targetSdkVersion 26
-        versionCode 27
-        versionName "1.2.14"
+        versionCode 28
+        versionName "1.2.15"
         archivesBaseName = versionName + "." + getTime()
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

+ 7 - 7
app/src/main/java/com/doverfuelingsolutions/issp/api/SystemApi.kt

@@ -43,20 +43,20 @@ object SystemApi {
      * 获取账户对应设备
      */
     suspend fun getUserDevice(accountName: String,SN:String) = suspendCoroutine<DFSResult<Boolean>> {
-        DFSLog.i("开始获取账户对应设备:当前账户:${accountName},设备:${SN}")
-        serviceCheck.getUserDevice(accountName).enqueue(object :Callback<UserDevice>{
+        DFSLog.i("验证当前账户:${accountName}是否可以登录设备:${SN}")
+        serviceCheck.getUserDevice(accountName,SN).enqueue(object :Callback<UserDevice>{
             override fun onResponse(call: Call<UserDevice>, response: Response<UserDevice>) {
                 val code = response.code()
                 val body = response.body()
-                DFSLog.i("获取账户对应设备$body")
+                DFSLog.i("验证当前账户:${accountName}是否可以登录设备:${SN}结果:$body")
 
-                val find = body?.result?.find { it.Key.equals(accountName) && it.Value.equals(SN) }
-                it.resume(DFSResult.success(find != null))
+
+                it.resume(DFSResult.success((body?.result)?:false))
             }
 
             override fun onFailure(call: Call<UserDevice>, t: Throwable) {
-                DFSLog.e("获取账户对应设备失败",t.message)
-                it.resume(DFSResult.fail("获取账户对应设备失败,${t.message}"))
+                DFSLog.e("验证当前账户:${accountName}是否可以登录设备:${SN}失败",t.message)
+                it.resume(DFSResult.fail("验证当前账户:${accountName}是否可以登录设备:${SN}失败,${t.message}"))
             }
         })
     }

+ 13 - 13
app/src/main/java/com/doverfuelingsolutions/issp/api/dto/UserDevice.kt

@@ -3,7 +3,7 @@ package com.doverfuelingsolutions.issp.api.dto
 import com.google.gson.annotations.SerializedName
 
 data class UserDevice(
-    var result: List<UserDeviceValue>? = null,
+    var result: Boolean? = null,
 
     var statusCode: String? = null,
 
@@ -11,15 +11,15 @@ data class UserDevice(
 
 
 )
-
-data class UserDeviceValue(
-    /**
-     * 账户
-     */
-    var Key: String? = null,
-
-    /**
-     * 设备sn
-     */
-    var Value: String? = null
-)
+//
+//data class UserDeviceValue(
+//    /**
+//     * 账户
+//     */
+//    var Key: String? = null,
+//
+//    /**
+//     * 设备sn
+//     */
+//    var Value: String? = null
+//)

+ 2 - 2
app/src/main/java/com/doverfuelingsolutions/issp/api/service/ServiceCheck.kt

@@ -21,6 +21,6 @@ interface ServiceCheck {
         @Query("sn") sn: String,
         @Query("token") token:String = "123456789"): Call<CheckResponse>
 
-    @GET("api/Account/GetUserDevice")
-    fun getUserDevice(@Query("UserID") userName:String):Call<UserDevice>
+    @GET("api/Account/GetUserDevice_bool")
+    fun getUserDevice(@Query("UserID") userName:String,@Query("Sn") sn:String):Call<UserDevice>
 }

+ 1 - 1
app/src/main/java/com/doverfuelingsolutions/issp/view/LoginActivity.kt

@@ -108,7 +108,7 @@ class LoginActivity : AppCompatActivity(),
             val password = loginViewModel.password.value
             when {
                 accountName.isNullOrBlank() || password.isNullOrBlank() -> snackbar.setText(R.string.input_not_right).show()
-//                !isRightAccountAndDevice(accountName) -> snackbar.setText(R.string.error_account_device).show()
+                !isRightAccountAndDevice(accountName) -> snackbar.setText(R.string.error_account_device).show()
                 else -> {
                     val result = SystemApi.login(accountName, password)
                     if (!result.success) snackbar.setText(StringUtil.get(R.string.login_fail_reason, result.message)).show()