Browse Source

refractor 获取支付参数放在登录页面流程,登录页面接口并发优化

RobinTan1024 4 years ago
parent
commit
53ecdff89e

+ 3 - 1
app/src/main/java/com/doverfuelingsolutions/issp/data/GlobalData.kt

@@ -28,7 +28,9 @@ object GlobalData {
 
     fun init() {
         val localTokenExpireMoment = accessTokenExpire.get()
-        DFSLog.d("loginToken will expire at ${ TimeUtil.dateFormat(localTokenExpireMoment) }")
+        if (localTokenExpireMoment > 0) {
+            DFSLog.d("loginToken will expire at ${TimeUtil.dateFormat(localTokenExpireMoment)}")
+        }
         isLogin = System.currentTimeMillis() < localTokenExpireMoment
     }
 }

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

@@ -18,6 +18,7 @@ import com.doverfuelingsolutions.issp.utils.PermissionUtil
 import com.doverfuelingsolutions.issp.utils.StringUtil
 import com.doverfuelingsolutions.issp.utils.log.DFSLog
 import com.google.android.material.snackbar.Snackbar
+import kotlinx.coroutines.async
 import kotlinx.coroutines.launch
 
 class LoginActivity : AppCompatActivity(),
@@ -77,18 +78,28 @@ class LoginActivity : AppCompatActivity(),
                     if (!result.success) snackbar.setText(StringUtil.get(R.string.login_fail_reason, result.message)).show()
                     else {
                         GlobalData.isLogin = true
+                        // 并发
+                        val deferredPhone = async { SystemApi.sessionInfo() }
+                        val deferredLogo = async { SystemApi.stationLogo() }
+                        val deferredPayment = async { SystemApi.paymentParam() }
                         // 油站号码
-                        val resultPhone = SystemApi.sessionInfo()
+                        val resultPhone = deferredPhone.await()
                         if (resultPhone.success && resultPhone.data?.phoneNumber?.isBlank() == false) {
                             DFSLog.d("station phone: ${resultPhone.data.phoneNumber}")
                             GlobalData.stationTel.set(resultPhone.data.phoneNumber)
                         }
                         // 油站 LOGO
-                        val resultLogo = SystemApi.stationLogo()
+                        val resultLogo = deferredLogo.await()
                         if (resultLogo.success && resultLogo.data != null) {
                             DFSLog.d("station logo file: ${resultLogo.data}")
                             GlobalData.stationLogoFileName.set(resultLogo.data)
                         }
+                        // 支付参数
+                        val resultPayment = deferredPayment.await()
+                        if (resultPayment.success && resultPayment.data != null) {
+                            GlobalData.paymentId.set(resultPayment.data.PaymentId)
+                            GlobalData.paymentName.set(resultPayment.data.DispalyName)
+                        }
 
                         startMain()
                     }

+ 0 - 9
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/FragmentOrderList.kt

@@ -41,7 +41,6 @@ class FragmentOrderList private constructor(private val pumpId: Int) : FragmentB
 
         lifecycleScope.launch {
             loadListData()
-            loadPaymentParam()
         }
     }
 
@@ -158,14 +157,6 @@ class FragmentOrderList private constructor(private val pumpId: Int) : FragmentB
         }
     }
 
-    private suspend fun loadPaymentParam() {
-        val result = SystemApi.paymentParam()
-        if (result.success && result.data != null) {
-            GlobalData.paymentId.set(result.data.PaymentId)
-            GlobalData.paymentName.set(result.data.DispalyName)
-        }
-    }
-
     private fun getOrderListHash(list: List<DeviceClass>): String {
         return list.joinToString(",") { "${it.pumpNo}-${it.transactionSeqNo}" }
     }