Browse Source

fix 修复已支付订单在重复支付时未消单的问题

robin 4 years ago
parent
commit
763b40f548

+ 3 - 0
app/src/main/java/com/doverfuelingsolutions/issp/utils/sp/SPUtil.kt

@@ -160,6 +160,9 @@ object SPUtil {
      */
     fun removeWayneOrder(dc: DeviceClass) {
         val symbol = getDeviceClassSymbol(dc)
+        removeWayneOrder(symbol)
+    }
+    fun removeWayneOrder(symbol: String) {
         val orderList = getWayneOrderList()
         val order = orderList.find { it.dc == symbol }
         if (order != null) {

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

@@ -320,6 +320,7 @@ class MainActivity : AppCompatActivity(),
                     val tip = "auto clear order ${list[index]}"
                     if (result.success) {
                         DFSLog.d("$tip succeeded")
+                        SPUtil.removeWayneOrder(list[index])
                         null
                     } else {
                         DFSLog.d("$tip failed")

+ 2 - 1
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/FragmentOrderList.kt

@@ -10,6 +10,7 @@ import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.GridLayoutManager
+import com.doverfuelingsolutions.issp.BuildConfig
 import com.doverfuelingsolutions.issp.R
 import com.doverfuelingsolutions.issp.databinding.FragmentNozzleOrdersBinding
 import com.doverfuelingsolutions.issp.fusion.FusionManager
@@ -105,7 +106,7 @@ class FragmentOrderList private constructor() : FragmentBasic() {
                     }
                 }
                 type == 1 && dc.isLock -> {
-                    if (SPUtil.isLockByThis(dc)) {
+                    if (SPUtil.isLockByThis(dc) || BuildConfig.DEBUG) {
                         val result = FusionManager.lockOrder(dc, false)
                         if (result.success) {
                             dc.state = "Payable"

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

@@ -114,12 +114,12 @@ class FragmentPayScanCode private constructor() : FragmentBasic() {
             if ((result.success && result.data != null) || (!result.success && result.message == "此订单已支付,请勿重复支付")) {
                 // 支付成功后,移除本地云订单,清单
                 GlobalScope.launch(Dispatchers.IO) {
-                    SPUtil.removeWayneOrder(dc)
                     SPUtil.removeLockOrder(dc)
                     val resultClear = FusionManager.clearOrder(dc)
                     if (resultClear.success) {
                         dc.state = "Cleared"
                         SPUtil.removeUnclearedOrder(dc)
+                        SPUtil.removeWayneOrder(dc)
                     } else {
                         // 失败则记下来,后续再尝试消单
                         SPUtil.addUnclearedOrder(dc)