Selaa lähdekoodia

Merge branch 'master' of http://47.101.159.18:3000/Muchinfo/MTP2.0_RMA

zhou.xiaoning 3 vuotta sitten
vanhempi
commit
981e596908

+ 20 - 6
RMA/app/src/main/java/cn/muchinfo/rma/global/data/AccountData.kt

@@ -1,5 +1,6 @@
 package cn.muchinfo.rma.global.data
 
+import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.account.loginQeruy.GoodsInfo
 import cn.muchinfo.rma.global.database.DataBase
@@ -175,7 +176,14 @@ open class AccountData(
 
     var raisedAmount: Double = 0.0,//合约市场融资额
     var valueOfposition: Double = 0.0,//合约市场总市值
-    var valueOfposition_keep_watch_profit_and_loss: Double = 0.0//合约市场浮动总盈亏
+    var valueOfposition_keep_watch_profit_and_loss: Double = 0.0,//合约市场浮动总盈亏
+
+    val postCanUserAmount: MutableLiveData<Double> = MutableLiveData(),
+    val postValueOfPosition : MutableLiveData<Double> = MutableLiveData(),
+
+    var canUserValueOfPosition :Boolean = true  // 浮动盈亏能否使用  作用类似读锁
+
+
 ) {
 
     /**
@@ -209,7 +217,8 @@ open class AccountData(
 
         if (SPUtils.getInstance().getString(Constant.oem) == "yrdz" || SPUtils.getInstance().getString(
                 Constant.oem) == "tjmd" ){
-            valueOfposition_keep_watch_profit_and_loss = 0.0
+            canUserValueOfPosition = false // 锁住读取
+            var sum = 0.0
             newList.forEach {
                 var goodsInfoData: GoodsInfo
                 if (it.trademode == "16") {
@@ -257,11 +266,15 @@ open class AccountData(
 
                         }
                     }
-                    println("@@@"+Profit)
-                    valueOfposition_keep_watch_profit_and_loss += Profit
+                    sum += Profit
+                }
+            }
+            if(!canUserValueOfPosition) {
+                if(sum != postValueOfPosition.value) {
+                    postValueOfPosition.postValue(sum)
+                    valueOfposition_keep_watch_profit_and_loss = sum
+                    canUserValueOfPosition = true // 解锁
                 }
-
-
             }
         }
 
@@ -287,6 +300,7 @@ open class AccountData(
         canUserAmount =
             currentbalance.minus(usedmargin).minus(freezecharge)
                 .minus(otherfreezemargin).minus(outamountfreeze).minus(freezemargin)
+        postCanUserAmount.postValue(canUserAmount)
         /** 权益 **/
         rightsAndInterests = currentbalance.plus(keep_watch_profit_and_loss)
 

+ 37 - 20
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/HnstMainFragment.kt

@@ -13,6 +13,7 @@ import android.view.ViewGroup
 import android.widget.TextView
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.Observer
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.GlobalDataCollection
 import cn.muchinfo.rma.global.data.BankAccountSignData
@@ -74,7 +75,6 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
 
 //        viewModel.resetAccountData()
         viewModel.queryContractTradePosition("2")
-
     }
 
     override fun onDestroy() {
@@ -106,13 +106,14 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
             val goodsInfo =
                 GlobalDataCollection.instance?.contractTradePositionDataArrayList?.find { it.goodsid?.toInt() == goodid }
             if (goodsInfo?.goodsid.isNullOrEmpty().not()) {
-                viewModel.getUserAccount()
+
                 // resolve bug  #3429
                 // 减少频率
-//                if(TimeUtils.getNowMills() - requestTime > 300){
+                if(TimeUtils.getNowMills() - requestTime > 1500){
+                    viewModel.getUserAccount()
                     viewModel.resetAccountData()
-//                    requestTime = TimeUtils.getNowMills()
-//                }
+                    requestTime = TimeUtils.getNowMills()
+                }
 
             }
         }
@@ -748,23 +749,39 @@ class HnstMainFragment : BaseFragment<HnstMainViewmodel>() {
                                     viewModel.usedAccountData.bindOptional(context) {
                                         if (isOpenEye.value == true) {
 //                                            if (it!!.valueOfposition_keep_watch_profit_and_loss!! != 0.0){
-                                                text = NumberUtils.roundNum(
-                                                    NumberUtils.doubleDistortion(it?.valueOfposition_keep_watch_profit_and_loss?.toString()),
-                                                    2
-                                                )
+//                                                if(it?.canUserValueOfPosition!!) {
+//                                                    text = NumberUtils.roundNum(
+//                                                        NumberUtils.doubleDistortion(it?.valueOfposition_keep_watch_profit_and_loss?.toString()),
+//                                                        2
+//                                                    )
+//                                                }
+
+                                                var lastprice: Double? = 0.0
+
+                                                it!!.postValueOfPosition.bindOptional(context){ its ->
+                                                    if(its != lastprice){
+                                                        lastprice = its
+                                                        text = NumberUtils.roundNum(
+                                                            NumberUtils.doubleDistortion(its?.toString()),
+                                                            2
+                                                        )
+
+                                                        textColorInt = when {
+                                                            its ?: 0.0 > 0.0 -> {
+                                                                R.color.rma_red_color
+                                                            }
+                                                            its ?: 0.0 < 0.0 -> {
+                                                                R.color.rma_green_color
+                                                            }
+                                                            else -> {
+                                                                R.color.rma_black_33
+                                                            }
+                                                        }
+                                                    }
+                                                }
 //                                            }
 
-                                            textColorInt = when {
-                                                it?.valueOfposition_keep_watch_profit_and_loss ?: 0.0 > 0.0 -> {
-                                                    R.color.rma_red_color
-                                                }
-                                                it?.valueOfposition_keep_watch_profit_and_loss ?: 0.0 < 0.0 -> {
-                                                    R.color.rma_green_color
-                                                }
-                                                else -> {
-                                                    R.color.rma_black_33
-                                                }
-                                            }
+
                                         } else {
                                             text = "****"
                                         }

+ 40 - 12
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzAccountActivity.kt

@@ -24,6 +24,7 @@ import cn.muchinfo.rma.view.eventbus.MessageEvent
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
 import com.blankj.utilcode.util.ConvertUtils
 import com.blankj.utilcode.util.SPUtils
+import com.blankj.utilcode.util.TimeUtils
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
 import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
 import com.qmuiteam.qmui.widget.tab.QMUITabSegment
@@ -74,14 +75,22 @@ class RydzAccountActivity : BaseActivity<RydzAccountViewModel>() {
         /** 行情推送过来的goodsid **/
         quoteMessageEvent.goodsid.forEach { goodid ->
             //找到相应商品信息
+//            println("goodsid="+goodid)
             val goodsInfo =
                 GlobalDataCollection.instance?.contractTradePositionDataArrayList?.find { it.goodsid?.toInt() == goodid }
             if (goodsInfo?.goodsid.isNullOrEmpty().not()) {
-                viewModel.getTaAccounts()
+
+                if(TimeUtils.getNowMills() - requestTime > 1000){
+                    viewModel.resetAccountData()
+                    viewModel.getTaAccounts()
+                    requestTime = TimeUtils.getNowMills()
+                }
+
+                // resolve bug  #3429
             }
         }
     }
-
+    private var requestTime = TimeUtils.getNowMills()
     override fun onDestroy() {
         super.onDestroy()
         EventBus.getDefault().unregister(this)
@@ -560,16 +569,35 @@ class MoneyInfoUI(
                      * 浮动盈亏-usedmargin
                      */
                     viewModel.usedAccountData.bindOptional(context) {
-                        text = NumberUtils.roundNum(
-                            NumberUtils.doubleDistortion(it?.valueOfposition_keep_watch_profit_and_loss?.toString()),
-                            2
-                        )
-                        textColorInt = if (it?.valueOfposition_keep_watch_profit_and_loss ?: 0.0 > 0.0){
-                            R.color.rma_red_color
-                        }else if (it?.valueOfposition_keep_watch_profit_and_loss ?: 0.0 < 0.0){
-                            R.color.rma_green_color
-                        }else{
-                            R.color.rma_black_33
+//                        println("@@@@ = " + it?.valueOfposition_keep_watch_profit_and_loss)
+//                        text = NumberUtils.roundNum(
+//                            NumberUtils.doubleDistortion(it?.valueOfposition_keep_watch_profit_and_loss?.toString()),
+//                            2
+//                        )
+//                        textColorInt = if (it?.valueOfposition_keep_watch_profit_and_loss ?: 0.0 > 0.0){
+//                            R.color.rma_red_color
+//                        }else if (it?.valueOfposition_keep_watch_profit_and_loss ?: 0.0 < 0.0){
+//                            R.color.rma_green_color
+//                        }else{
+//                            R.color.rma_black_33
+//                        }
+                        it!!.postValueOfPosition.bindOptional(context){
+                            text = NumberUtils.roundNum(
+                                NumberUtils.doubleDistortion(it?.toString()),
+                                2
+                            )
+
+                            textColorInt = when {
+                                it ?: 0.0 > 0.0 -> {
+                                    R.color.rma_red_color
+                                }
+                                it ?: 0.0 < 0.0 -> {
+                                    R.color.rma_green_color
+                                }
+                                else -> {
+                                    R.color.rma_black_33
+                                }
+                            }
                         }
                     }
                     textSizeAuto = 36

+ 11 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/hnstmain/account/RydzAccountViewModel.kt

@@ -32,6 +32,17 @@ class RydzAccountViewModel : BaseViewModel(){
         }
     }
 
+    //重新赋值资金账户
+    fun resetAccountData(){
+        val accountDataList = GlobalDataCollection.instance?.accountDataList
+        if (accountDataList.isNullOrEmpty().not()) {
+            val accountData = GlobalDataCollection.instance?.accountData
+            accountData?.clearData()
+            accountData?.setNormalData()
+            usedAccountData.postValue(accountData)
+        }
+    }
+
     /**
      * 更新交易下单的account
      */

+ 6 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingActivity.kt

@@ -29,6 +29,7 @@ import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.contract.verticalEmptyView
 import cn.muchinfo.rma.view.eventbus.QuoteMessageEvent
+import com.blankj.utilcode.util.TimeUtils
 import com.blankj.utilcode.util.ToastUtils
 import com.desfate.chart.util.LogUtils
 import com.desfate.chart.util.MathUtil
@@ -130,11 +131,14 @@ class SwapsDelistingActivity : BaseActivity<SwapsDelistingViewModel>(){
                 GlobalDataCollection.instance?.contractTradePositionDataArrayList?.find { it.goodsid?.toInt() == goodid }
             if (goodsInfo?.goodsid.isNullOrEmpty().not()) {
                 // resolve bug  #3429
-                viewModel.resetAccountData()
-//                viewModel.getTaAccounts()
+                if(TimeUtils.getNowMills() - requestTime > 3500){
+                    viewModel.getTaAccounts()
+                    requestTime = TimeUtils.getNowMills()
+                }
             }
         }
     }
+    private var requestTime = TimeUtils.getNowMills()
 
     @SuppressLint("SetTextI18n")
     @RequiresApi(Build.VERSION_CODES.O)

+ 13 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/delisting/SwapsDelistingViewModel.kt

@@ -120,6 +120,19 @@ class SwapsDelistingViewModel : BaseViewModel(){
         }
     }
 
+    //查询资金账号信息
+    fun getTaAccounts(){
+        val params = mutableMapOf<String, String>().apply {
+            put("loginID", GlobalDataCollection.instance?.loginRsp?.loginID.toString())
+        }
+        MyApplication.getInstance()?.initializeManager?.getTaAccounts(params = params) { isSuccess, respData, error ->
+            if (isSuccess) {
+                GlobalDataCollection.instance?.accountDataList = respData
+                resetAccountData()
+            }
+        }
+    }
+
     //重新赋值资金账户
     fun resetAccountDataBySelect(data : AccountData){
         data.clearData()

+ 2 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/yrdzpurchase/swaps/listed/SwapsListedActivity.kt

@@ -142,8 +142,8 @@ class SwapsListedActivity : BaseActivity<SwapsListedViewModel>() {
                 GlobalDataCollection.instance?.contractTradePositionDataArrayList?.find { it.goodsid?.toInt() == goodid }
             if (goodsInfo?.goodsid.isNullOrEmpty().not()) {
                 // resolve bug  #3429
-                viewModel.resetAccountData()
-
+//                viewModel.resetAccountData()
+//
                 if(TimeUtils.getNowMills() - requestTime > 3500){
                     viewModel.getTaAccounts()
                     requestTime = TimeUtils.getNowMills()