Przeglądaj źródła

风险管理4月19日提交代码-liu.bolan

Liu.bolan 4 lat temu
rodzic
commit
1cc392e46e
18 zmienionych plików z 1052 dodań i 80 usunięć
  1. 7 0
      RMA/app/src/main/AndroidManifest.xml
  2. 25 0
      RMA/app/src/main/java/cn/muchinfo/rma/business/account/AccountManager.kt
  3. 147 0
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/AccMgrBizGroupSetData.kt
  4. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/global/data/AccMgrTaaccountData.kt
  5. 106 29
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/AccountManagerActivity.kt
  6. 8 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/accountviewholder/AccountManagerViewHolder.kt
  7. 4 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/accountviewholder/FutureManagerViewHolder.kt
  8. 133 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/accountviewholder/FutureUserViewHolder.kt
  9. 70 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/AddFutureRoleActivity.kt
  10. 37 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureAccountViewholder.kt
  11. 140 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureSetActivity.kt
  12. 58 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureSetViewHolder.kt
  13. 64 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureSetViewModel.kt
  14. 148 36
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/AddLoginRoleActivity.kt
  15. 0 5
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/AddRoleActivity.kt
  16. 48 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/LoginRoleViewHolder.kt
  17. 0 2
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/RoleLoginVIewHolder.kt
  18. 56 4
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/RoleSetViewModel.kt

+ 7 - 0
RMA/app/src/main/AndroidManifest.xml

@@ -240,6 +240,13 @@
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustPan"/>
 
+        <activity android:name=".view.base.home.rolemanagement.AddLoginRoleActivity"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="adjustPan"/>
+
+        <activity android:name=".view.base.home.accountmanager.futureset.FutureSetActivity"/>
+
+        <activity android:name=".view.base.home.accountmanager.futureset.AddFutureRoleActivity"/>
     </application>
 
 </manifest>

+ 25 - 0
RMA/app/src/main/java/cn/muchinfo/rma/business/account/AccountManager.kt

@@ -364,6 +364,31 @@ class AccountManager {
     }
 
     /**
+     * 查询业务类型分组(账户管理/账户设置)
+     * userid 用户ID
+     */
+    fun queryAccMgrBizGroupSet(
+        params: Map<String, String>,
+        responseBack: (isSuccess: Boolean, respData: List<AccMgrBizGroupSetData>?, error: Error?) -> Unit
+    ) {
+        MyOkHttpUtils().query(
+            URL = SPUtils.getInstance()
+                .getString(Constant.goCommonSearchUrl) + "/Ermcp/QueryAccMgrBizGroupSet",
+            params = params,
+            type = "1",
+            callback = object : ResponseCallback<BaseResult<List<AccMgrBizGroupSetData>>>() {
+                override fun onResponse(response: BaseResult<List<AccMgrBizGroupSetData>>?, id: Int) {
+                    responseBack(true, response?.data, null)
+                }
+
+                override fun onError(call: Call?, e: Exception?, id: Int) {
+                    responseBack(false, null, Error(e?.message))
+                }
+            }
+        )
+    }
+
+    /**
      * 查询账户管理主账号详情(账户管理/期货主账号详情)
      * userid 用户ID
      * accountid 主账号id

+ 147 - 0
RMA/app/src/main/java/cn/muchinfo/rma/global/data/AccMgrBizGroupSetData.kt

@@ -0,0 +1,147 @@
+package cn.muchinfo.rma.global.data
+
+import android.os.Parcel
+import android.os.Parcelable
+
+/**
+ * 查询业务类型分组(账户管理/账户设置)实体
+ * @property bizgroupid String?
+ * @property biztype String?
+ * @property acclist List<Acclist>
+ * @property wrlist List<Wrlist>
+ * @constructor
+ */
+data class AccMgrBizGroupSetData(
+    val bizgroupid : String? = "",//业务分组id
+    val biztype : String? = "",//业务类型 1-套保 2-套利
+    var wrName : String? = "",//合并起来的现货名称
+    val acclist : List<Acclist>? = arrayListOf(),
+    val wrlist : List<Wrlist>? = arrayListOf()
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.createTypedArrayList(Acclist),
+        parcel.createTypedArrayList(Wrlist)
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(bizgroupid)
+        parcel.writeString(biztype)
+        parcel.writeString(wrName)
+        parcel.writeTypedList(acclist)
+        parcel.writeTypedList(wrlist)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<AccMgrBizGroupSetData> {
+        override fun createFromParcel(parcel: Parcel): AccMgrBizGroupSetData {
+            return AccMgrBizGroupSetData(parcel)
+        }
+
+        override fun newArray(size: Int): Array<AccMgrBizGroupSetData?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}
+
+/**
+ * 账号列表
+ * @property accountid String?
+ * @property accountname String?
+ * @property areauserid String?
+ * @property bizgroupid String?
+ * @property ismain String?
+ * @constructor
+ */
+data class Acclist(
+    val accountid : String? = "",//账号id
+    val accountname : String? = "",//账号名称
+    val areauserid : String? = "",//所属机构id
+    val bizgroupid : String? = "",//业务分组id
+    val ismain : String? = ""//是否主账号 1-是 0-否
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(accountid)
+        parcel.writeString(accountname)
+        parcel.writeString(areauserid)
+        parcel.writeString(bizgroupid)
+        parcel.writeString(ismain)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<Acclist> {
+        override fun createFromParcel(parcel: Parcel): Acclist {
+            return Acclist(parcel)
+        }
+
+        override fun newArray(size: Int): Array<Acclist?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}
+
+data class Wrlist(
+    val areauserid : String? = "",//所属机构id
+    val bizgroupid : String? = "",//分组id
+    val biztype : String? = "",//业务类型 1-套保 2-套利
+    val deliverygoodscode : String? = "",//现货商品代码
+    val deliverygoodsid : String? = "",//现货商品id
+    val deliverygoodsname : String? = "",//现货商品名称
+    val unitid : String? = ""//现货商品单位id
+) : Parcelable{
+    constructor(parcel: Parcel) : this(
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString(),
+        parcel.readString()
+    ) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(areauserid)
+        parcel.writeString(bizgroupid)
+        parcel.writeString(biztype)
+        parcel.writeString(deliverygoodscode)
+        parcel.writeString(deliverygoodsid)
+        parcel.writeString(deliverygoodsname)
+        parcel.writeString(unitid)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<Wrlist> {
+        override fun createFromParcel(parcel: Parcel): Wrlist {
+            return Wrlist(parcel)
+        }
+
+        override fun newArray(size: Int): Array<Wrlist?> {
+            return arrayOfNulls(size)
+        }
+    }
+
+}

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/global/data/AccMgrTaaccountData.kt

@@ -48,7 +48,7 @@ data class AccMgrTaaccountSonData(
     val parentaccountid : String? = "",//父账户id
     val relateduserid : String? = "",//关联userid
     val tradestatus : String? = "",//交易状态 - 1:正常 2:受限 3:冻结 4:禁止建仓(人工受限) 5:禁止交易(人工冻结) 6:待激活 7:已注销
-    var isSelect: Int = 0//是否点击展开
+    var isSelect: Int = 0//是否点击展开/是否选中
 ) : Parcelable{
     constructor(parcel: Parcel) : this(
         parcel.readString(),

+ 106 - 29
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/AccountManagerActivity.kt

@@ -18,6 +18,7 @@ import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
 import cn.muchinfo.rma.view.base.home.accountmanager.accountviewholder.AccountManagerViewHolder
 import cn.muchinfo.rma.view.base.home.accountmanager.accountviewholder.FutureManagerViewHolder
+import cn.muchinfo.rma.view.base.home.accountmanager.futureset.FutureSetActivity
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import cn.muchinfo.rma.view.base.home.rolemanagement.RoleSetActivity
 import com.blankj.utilcode.util.ActivityUtils
@@ -35,7 +36,7 @@ import org.jetbrains.anko.support.v4.viewPager
 /**
  * 账户管理页面
  */
-class AccountManagerActivity : BaseActivity<AccountManagerViewModel>(){
+class AccountManagerActivity : BaseActivity<AccountManagerViewModel>() {
 
     lateinit var segment: QMUITabSegment
     var selectedTabIndex: Int = 0
@@ -50,12 +51,12 @@ class AccountManagerActivity : BaseActivity<AccountManagerViewModel>(){
     /**
      * 登录账户
      */
-    private val loginAccountManager by lazy { LoginAccountManager(this,viewModel) }
+    private val loginAccountManager by lazy { LoginAccountManager(this, viewModel) }
 
     /**
      * 期货账户
      */
-    private val futuresAccountManager by lazy { FuturesAccountManager(this,viewModel) }
+    private val futuresAccountManager by lazy { FuturesAccountManager(this, viewModel) }
 
     val dialog by lazy { createLoadingDialog(hintStr = "请求中...") }
 
@@ -111,7 +112,7 @@ class AccountManagerActivity : BaseActivity<AccountManagerViewModel>(){
 
                 }
             }
-           val collectInfo = DeviceInfoManager.getCollectInfo(context)
+            val collectInfo = DeviceInfoManager.getCollectInfo(context)
             tabSegment {
                 segment = this
                 background = resources.getDrawable(R.color.segtabment_bg_color)
@@ -161,9 +162,9 @@ class AccountManagerActivity : BaseActivity<AccountManagerViewModel>(){
  * @constructor
  */
 class LoginAccountManager(
-    private val activity : AppCompatActivity,
-    private val viewModel : AccountManagerViewModel
-){
+    private val activity: AppCompatActivity,
+    private val viewModel: AccountManagerViewModel
+) {
 
     private lateinit var swipeToLayout: SwipeToLoadLayout
     private lateinit var statusLayout: StatusLayout
@@ -173,7 +174,7 @@ class LoginAccountManager(
         BaseAdapter { _, _ -> AccountManagerViewHolder(activity, viewModel) }
 
     //登录账户是否可选择
-    val isClickSelect : MutableLiveData<Int> = MutableLiveData<Int>().apply { value = 1 }
+    val isClickSelect: MutableLiveData<Int> = MutableLiveData<Int>().apply { value = 1 }
 
     init {
         viewModel.initAccountData()
@@ -185,9 +186,9 @@ class LoginAccountManager(
 
             linearLayout {
                 onThrottleFirstClick {
-                    if (isClickSelect.value == 0){
+                    if (isClickSelect.value == 0) {
                         isClickSelect.postValue(1)
-                    }else{
+                    } else {
                         isClickSelect.postValue(0)
                     }
                 }
@@ -207,14 +208,14 @@ class LoginAccountManager(
                     maxEms = 9
                     ellipsize = TextUtils.TruncateAt.END
                     textSizeAuto = 36
-                }.lparams(wrapContent, wrapContent){
+                }.lparams(wrapContent, wrapContent) {
                     marginStart = autoSize(20)
                 }
                 textView {
-                    text = "(13)"
+                    text = ""
                     textColorInt = R.color.rma_hint_text_color_ccc
                     textSizeAuto = 36
-                }.lparams(wrapContent, wrapContent){
+                }.lparams(wrapContent, wrapContent) {
                     marginStart = autoSize(20)
                 }
 
@@ -223,7 +224,7 @@ class LoginAccountManager(
                 textView {
                     onThrottleFirstClick {
                         val intent = Intent()
-                        intent.setClass(context,RoleSetActivity::class.java)
+                        intent.setClass(context, RoleSetActivity::class.java)
                         ActivityUtils.startActivity(intent)
                     }
                     backgroundResource = R.drawable.rma_item_click_yellow_bg
@@ -240,17 +241,17 @@ class LoginAccountManager(
 
                     }
                     imageResource = R.mipmap.rma_account_add
-                }.lparams(autoSize(43), autoSize(43)){
+                }.lparams(autoSize(43), autoSize(43)) {
                     marginEnd = autoSize(36)
                 }
 
             }.lparams(matchParent, autoSize(96))
 
             statusLayout(contentBlock = {
-                isClickSelect.bindOptional(context){
-                    if (it == 0){
+                isClickSelect.bindOptional(context) {
+                    if (it == 0) {
                         visibility = View.GONE
-                    }else{
+                    } else {
                         visibility = View.VISIBLE
                     }
                 }
@@ -274,11 +275,11 @@ class LoginAccountManager(
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
-            viewModel.accountManagerList.bindOptional(context){
-                if (it?.isEmpty() == true || it?.size == 0){
+            viewModel.accountManagerList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
                     statusLayout.showEmpty()
-                }else {
-                    if (swipeToLayout.getIsRefreshing()){
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
                         swipeToLayout.finishRefresh()
                     }
                     statusLayout.showSuccess()
@@ -297,13 +298,16 @@ class LoginAccountManager(
  * @constructor
  */
 class FuturesAccountManager(
-    private val activity : AppCompatActivity,
+    private val activity: AppCompatActivity,
     private val viewModel: AccountManagerViewModel
-){
+) {
 
     private lateinit var swipeToLayout: SwipeToLoadLayout
     private lateinit var statusLayout: StatusLayout
 
+    //期货账户是否可选择
+    val isClickSelect: MutableLiveData<Int> = MutableLiveData<Int>().apply { value = 1 }
+
     //期货合约
     private val futureManagerAdapter: BaseAdapter<AccMgrTaaccountData, FutureManagerViewHolder> =
         BaseAdapter { _, _ -> FutureManagerViewHolder(activity, viewModel) }
@@ -314,15 +318,88 @@ class FuturesAccountManager(
 
     val root = _FrameLayout(activity).apply {
         verticalLayout {
+            linearLayout {
+                onThrottleFirstClick {
+                    if (isClickSelect.value == 0) {
+                        isClickSelect.postValue(1)
+                    } else {
+                        isClickSelect.postValue(0)
+                    }
+                }
+                gravity = Gravity.CENTER_VERTICAL
+                imageView {
+                    imageResource = R.mipmap.list_folding
+                }.lparams(autoSize(43), autoSize(43)) {
+                    marginStart = autoSize(36)
+                }
+
+                textView {
+                    viewModel.userAccount.bindOptional(context) {
+                        text = it?.accountname
+                    }
+                    textColorInt = R.color.rma_black_33
+                    maxLines = 1
+                    maxEms = 9
+                    ellipsize = TextUtils.TruncateAt.END
+                    textSizeAuto = 36
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(20)
+                }
+                textView {
+                    text = ""
+                    textColorInt = R.color.rma_hint_text_color_ccc
+                    textSizeAuto = 36
+                }.lparams(wrapContent, wrapContent) {
+                    marginStart = autoSize(20)
+                }
+
+                emptyView()
+
+                textView {
+                    onThrottleFirstClick {
+                        val intent = Intent()
+                        intent.setClass(context, FutureSetActivity::class.java)
+                        ActivityUtils.startActivity(intent)
+                    }
+                    backgroundResource = R.drawable.rma_item_click_yellow_bg
+                    gravity = Gravity.CENTER
+                    text = "账户设置"
+                    textColorInt = R.color.rma_item_yellow_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(120), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+
+                imageView {
+                    onThrottleFirstClick {
+
+                    }
+                    imageResource = R.mipmap.rma_account_add
+                }.lparams(autoSize(43), autoSize(43)) {
+                    marginEnd = autoSize(36)
+                }
+
+            }.lparams(matchParent, autoSize(96))
+
             statusLayout(contentBlock = {
+                isClickSelect.bindOptional(context) {
+                    if (it == 0) {
+                        visibility = View.GONE
+                    } else {
+                        visibility = View.VISIBLE
+                    }
+                }
                 statusLayout = this
+                setRetryAction {
+                    viewModel.queryAccMgrTaaccount()
+                }
 //                bindTaskStatus(viewModule.status)
                 swipeToLoadLayout {
                     swipeToLayout = this
                     setEnableRefresh(true)
                     setEnableLoadMore(false)
                     setOnRefreshListener {
-                        viewModel.queryAccMgrLoginUser()
+                        viewModel.queryAccMgrTaaccount()
                     }
                     setEnableScrollContentWhenLoaded(false)
                     setEnableLoadMoreWhenContentNotFull(false)
@@ -335,11 +412,11 @@ class FuturesAccountManager(
                 emptyView(hint = resources.getString(R.string.now_no_data))
             }).lparams(matchParent, matchParent)
 
-            viewModel.futureManagerList.bindOptional(context){
-                if (it?.isEmpty() == true || it?.size == 0){
+            viewModel.futureManagerList.bindOptional(context) {
+                if (it?.isEmpty() == true || it?.size == 0) {
                     statusLayout.showEmpty()
-                }else {
-                    if (swipeToLayout.getIsRefreshing()){
+                } else {
+                    if (swipeToLayout.getIsRefreshing()) {
                         swipeToLayout.finishRefresh()
                     }
                     statusLayout.showSuccess()

+ 8 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/accountviewholder/AccountManagerViewHolder.kt

@@ -14,6 +14,7 @@ import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.accountmanager.AccountManagerViewModel
 import cn.muchinfo.rma.view.base.home.commodity.newcommodity.newhedge.HedgeFutureContractViewHolder
 import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.rolemanagement.AddLoginRoleActivity
 import cn.muchinfo.rma.view.base.home.rolemanagement.AddRoleActivity
 import com.blankj.utilcode.util.ActivityUtils
 import mtp.polymer.com.autowidget.adapter.BaseAdapter
@@ -72,7 +73,13 @@ class AccountManagerViewHolder(
                             intent.setClass(context,AddRoleActivity::class.java)
                             ActivityUtils.startActivity(intent)
                         }else{
-
+                            val intent = Intent()
+                            intent.putExtra("type","1")
+                            intent.putExtra("data",data.value)
+                            intent.putExtra("data1",AccMgrLoginUserData())
+                            intent.putExtra("seletType", viewModel.getPassRoleList() as Serializable)
+                            intent.setClass(context,AddLoginRoleActivity::class.java)
+                            ActivityUtils.startActivity(intent)
                         }
                     }
                     imageResource = R.mipmap.rma_account_add

+ 4 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/accountviewholder/FutureManagerViewHolder.kt

@@ -68,7 +68,7 @@ class FutureManagerViewHolder(private val activity : AppCompatActivity,private v
 
             recyclerView {
                 data.bindOptional(context){
-                    if (it?.mainAcc?.isSelect == 0){
+                    if (it?.isSelect == 0){
                         visibility = View.GONE
                     }else{
                         visibility = View.VISIBLE
@@ -77,6 +77,9 @@ class FutureManagerViewHolder(private val activity : AppCompatActivity,private v
                 background = resources.getDrawable(R.color.white)
                 adapter = futureUserAdapter
             }.lparams(matchParent, wrapContent)
+            data.bindOptional(context){
+                futureUserAdapter.setNewData(it?.subacclist)
+            }
         }.lparams(matchParent, wrapContent)
     }
 

+ 133 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/accountviewholder/FutureUserViewHolder.kt

@@ -1,8 +1,11 @@
 package cn.muchinfo.rma.view.base.home.accountmanager.accountviewholder
 
+import android.content.Intent
 import android.view.Gravity
+import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.AccMgrLoginUserData
 import cn.muchinfo.rma.global.data.AccMgrTaaccountSonData
 import cn.muchinfo.rma.global.loginstatus
 import cn.muchinfo.rma.global.tradestatus
@@ -13,8 +16,11 @@ import cn.muchinfo.rma.view.autoWidget.textColorInt
 import cn.muchinfo.rma.view.autoWidget.textSizeAuto
 import cn.muchinfo.rma.view.base.home.accountmanager.AccountManagerViewModel
 import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.rolemanagement.AddRoleActivity
+import com.blankj.utilcode.util.ActivityUtils
 import mtp.polymer.com.autowidget.adapter.BaseViewHolder
 import org.jetbrains.anko.*
+import java.io.Serializable
 
 /**
  * 期货账户子item
@@ -73,7 +79,133 @@ class FutureUserViewHolder(private val activity : AppCompatActivity,private val
                     marginEnd = autoSize(31)
                 }
             }.lparams(matchParent, autoSize(96))
-        }.lparams(matchParent, wrapContent)
+
+            linearLayout {
+                data.bindOptional(context) {
+                    if (it?.isSelect == 0) {
+                        visibility = View.GONE
+                    } else {
+                        visibility = View.VISIBLE
+                    }
+                }
+                gravity = Gravity.CENTER_VERTICAL
+                emptyView()
+                textView {
+                    onThrottleFirstClick {
+
+                    }
+                    backgroundResource = R.drawable.rma_item_click_bg
+                    gravity = Gravity.CENTER
+                    text = "详情"
+                    textColorInt = R.color.rma_item_click_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(110), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+
+                textView {
+                    data.bindOptional(context){
+                        if (it?.tradestatus == "1"){
+                            visibility = View.VISIBLE
+                        }else{
+                            visibility = View.GONE
+                        }
+                    }
+                    onThrottleFirstClick {
+
+                    }
+                    backgroundResource = R.drawable.rma_item_click_bg
+                    gravity = Gravity.CENTER
+                    text = "修改"
+                    textColorInt = R.color.rma_item_click_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(110), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+
+                textView {
+                    data.bindOptional(context){
+                        if (it?.tradestatus == "1"){
+                            visibility = View.VISIBLE
+                        }else{
+                            visibility = View.GONE
+                        }
+                    }
+                    onThrottleFirstClick {
+//                        viewModel.LoginaccountOperateReq(
+//                            operatetype = 5,
+//                            userid = data.value?.userid?.toLong() ?: 0,
+//                            loginid = data.value?.loginid?.toLong() ?: 0
+//                        ){
+//                            viewModel.queryAccMgrLoginUser()
+//                        }
+                    }
+                    backgroundResource = R.drawable.rma_item_click_bg
+                    gravity = Gravity.CENTER
+                    text = "锁定"
+                    textColorInt = R.color.rma_item_click_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(110), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+
+                textView {
+                    data.bindOptional(context){
+                        if (it?.tradestatus == "1"){
+                            visibility = View.VISIBLE
+                        }else{
+                            visibility = View.GONE
+                        }
+                    }
+                    onThrottleFirstClick {
+//                        viewModel.LoginaccountOperateReq(
+//                            operatetype = 7,
+//                            userid = data.value?.userid?.toLong() ?: 0,
+//                            loginid = data.value?.loginid?.toLong() ?: 0
+//                        ){
+//                            viewModel.queryAccMgrLoginUser()
+//                        }
+                    }
+                    backgroundResource = R.drawable.rma_item_click_bg
+                    gravity = Gravity.CENTER
+                    text = "注销"
+                    textColorInt = R.color.rma_item_click_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(110), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+                textView {
+                    data.bindOptional(context){
+                        if (it?.tradestatus == "2"){
+                            visibility = View.VISIBLE
+                        }else{
+                            visibility = View.GONE
+                        }
+                    }
+                    onThrottleFirstClick {
+//                        viewModel.LoginaccountOperateReq(
+//                            operatetype = 6,
+//                            userid = data.value?.userid?.toLong() ?: 0,
+//                            loginid = data.value?.loginid?.toLong() ?: 0
+//                        ){
+//                            viewModel.queryAccMgrLoginUser()
+//                        }
+                    }
+                    backgroundResource = R.drawable.rma_item_click_bg
+                    gravity = Gravity.CENTER
+                    text = "解锁"
+                    textColorInt = R.color.rma_item_click_color
+                    textSizeAuto = 26
+                }.lparams(autoSize(110), autoSize(48)) {
+                    marginEnd = autoSize(24)
+                }
+
+            }.lparams(matchParent, autoSize(72))
+        }.lparams(matchParent, wrapContent){
+            marginStart = autoSize(102)
+            marginEnd = autoSize(78)
+            bottomMargin = autoSize(10)
+        }
     }
 
 }

+ 70 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/AddFutureRoleActivity.kt

@@ -0,0 +1,70 @@
+package cn.muchinfo.rma.view.base.home.accountmanager.futureset
+
+import android.os.Bundle
+import android.view.Gravity
+import android.view.View
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseActivity
+import org.jetbrains.anko.*
+
+/**
+ * 新增期货账户
+ */
+class AddFutureRoleActivity : BaseActivity<FutureSetViewModel>(){
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            background = resources.getDrawable(R.color.main_hit_bg_color)
+            //页面标题
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "新增"
+                }
+                // 新增角色设置
+                commonMenuButton(R.mipmap.add_new) {
+//                    val intent = Intent()
+//                    intent.putExtra("type","1")
+//                    intent.putExtra("data", AccMgrRoleData())
+//                    intent.setClass(context, AddRoleSetActivity::class.java)
+//                    ActivityUtils.startActivity(intent)
+                }
+            }
+
+            frameLayout {
+
+                nestedScrollView{
+                    verticalLayout {
+
+                    }
+                }
+
+                linearLayout {
+                    background = resources.getDrawable(R.color.white)
+                    gravity = Gravity.CENTER_VERTICAL
+
+
+                    textView {
+                        onThrottleFirstClick {
+
+                        }
+                        gravity = Gravity.CENTER
+                        backgroundResource = R.mipmap.rma_submit_bg
+                        text = "完成"
+                        textColorInt = R.color.white
+                        textSizeAuto = 38
+                    }.lparams(matchParent, autoSize(119)) {
+                        marginStart = autoSize(60)
+                        marginEnd = autoSize(60)
+                    }
+                }.lparams(matchParent, autoSize(144)) {
+                    gravity = Gravity.BOTTOM
+                }
+
+            }.lparams(matchParent, matchParent)
+        }
+    }
+
+}

+ 37 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureAccountViewholder.kt

@@ -0,0 +1,37 @@
+package cn.muchinfo.rma.view.base.home.accountmanager.futureset
+
+import android.annotation.SuppressLint
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.Acclist
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko._FrameLayout
+import org.jetbrains.anko.linearLayout
+import org.jetbrains.anko.textView
+import org.jetbrains.anko.wrapContent
+
+class FutureAccountViewHolder(private val activity : AppCompatActivity,private val viewModel: FutureSetViewModel) : BaseViewHolder<Acclist>(activity){
+    override val itemSize: IntArray = intArrayOf(autoSize(360), wrapContent)
+
+    @SuppressLint("SetTextI18n")
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            gravity = Gravity.CENTER_VERTICAL
+            textView {
+                data.bindOptional(context){
+                    text = it?.accountname + "/" + it?.accountid
+                }
+                textSizeAuto = 29
+                textColorInt = R.color.rma_black_33
+            }.lparams(wrapContent, wrapContent){
+                marginStart = autoSize(50)
+            }
+        }.lparams(autoSize(360), autoSize(50))
+    }
+
+}

+ 140 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureSetActivity.kt

@@ -0,0 +1,140 @@
+package cn.muchinfo.rma.view.base.home.accountmanager.futureset
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.Gravity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.AccMgrBizGroupSetData
+import cn.muchinfo.rma.global.data.AccMgrRoleData
+import cn.muchinfo.rma.global.data.Acclist
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.*
+import cn.muchinfo.rma.view.base.BaseActivity
+import cn.muchinfo.rma.view.base.home.contract.emptyView
+import cn.muchinfo.rma.view.base.home.rolemanagement.AddRoleSetActivity
+import com.blankj.utilcode.util.ActivityUtils
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import org.jetbrains.anko.*
+
+/**
+ * 账户管理-期货账户-账户设置
+ */
+class FutureSetActivity : BaseActivity<FutureSetViewModel>() {
+
+    /**
+     * 套利
+     */
+    private val addRoleArbitrageAdapter: BaseAdapter<AccMgrBizGroupSetData, FutureSetViewHolder> =
+        BaseAdapter { _, _ -> FutureSetViewHolder(this, viewModel) }
+
+    /**
+     * 套保
+     * @param savedInstanceState Bundle?
+     */
+    private val addRoleHedgeAdapter: BaseAdapter<AccMgrBizGroupSetData, FutureSetViewHolder> =
+        BaseAdapter { _, _ -> FutureSetViewHolder(this, viewModel) }
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        verticalLayout {
+            viewModel.queryAccMgrBizGroupSet()
+            background = resources.getDrawable(R.color.main_hit_bg_color)
+            //页面标题
+            topBar {
+                commonLeftButton()
+                commonTitle {
+                    text = "账户设置"
+                }
+                // 新增角色设置
+                commonMenuButton(R.mipmap.add_new) {
+//                    val intent = Intent()
+//                    intent.putExtra("type","1")
+//                    intent.putExtra("data", AccMgrRoleData())
+//                    intent.setClass(context, AddRoleSetActivity::class.java)
+//                    ActivityUtils.startActivity(intent)
+                }
+            }
+
+            nestedScrollView{
+                verticalLayout {
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        imageView {
+                            onThrottleFirstClick {
+
+                            }
+                            imageResource = R.mipmap.second_list_floding
+                        }.lparams(autoSize(43), autoSize(43))
+
+                        textView {
+                            text = "套利"
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent) {
+                            marginStart = autoSize(20)
+                        }
+
+                        emptyView()
+
+                        imageView {
+                            onThrottleFirstClick {
+
+                            }
+                            imageResource = R.mipmap.rma_account_add
+                        }.lparams(autoSize(43), autoSize(43)) {
+                            marginEnd = autoSize(37)
+                        }
+                    }.lparams(matchParent, autoSize(108)) {
+                        marginStart = autoSize(102)
+                    }
+                    recyclerView {
+                        background = resources.getDrawable(R.color.add_role_bg_color)
+                        adapter = addRoleArbitrageAdapter
+                    }.lparams(matchParent, wrapContent)
+                    viewModel.futureArbitrageSetDataList.bindOptional(context){
+                        addRoleArbitrageAdapter.setNewData(it)
+                    }
+
+                    linearLayout {
+                        gravity = Gravity.CENTER_VERTICAL
+                        imageView {
+                            onThrottleFirstClick {
+
+                            }
+                            imageResource = R.mipmap.second_list_floding
+                        }.lparams(autoSize(43), autoSize(43))
+
+                        textView {
+                            text = "套保"
+                            textSizeAuto = 31
+                            textColorInt = R.color.rma_black_33
+                        }.lparams(wrapContent, wrapContent) {
+                            marginStart = autoSize(20)
+                        }
+
+                        emptyView()
+
+                        imageView {
+                            onThrottleFirstClick {
+
+                            }
+                            imageResource = R.mipmap.rma_account_add
+                        }.lparams(autoSize(43), autoSize(43)) {
+                            marginEnd = autoSize(37)
+                        }
+                    }.lparams(matchParent, autoSize(108)) {
+                        marginStart = autoSize(102)
+                    }
+
+                    recyclerView {
+                        background = resources.getDrawable(R.color.add_role_bg_color)
+                        adapter = addRoleHedgeAdapter
+                    }.lparams(matchParent, wrapContent)
+                    viewModel.futureHedgeSetDataList.bindOptional(context){
+                        addRoleHedgeAdapter.setNewData(it)
+                    }
+                }
+            }
+        }
+    }
+
+}

+ 58 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureSetViewHolder.kt

@@ -0,0 +1,58 @@
+package cn.muchinfo.rma.view.base.home.accountmanager.futureset
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.StaggeredGridLayoutManager
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.AccMgrBizGroupSetData
+import cn.muchinfo.rma.global.data.AccMgrRoleMenuData
+import cn.muchinfo.rma.global.data.Acclist
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.recyclerView
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import cn.muchinfo.rma.view.base.home.rolemanagement.AddRoleViewHolder
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+/**
+ * 期货账号设置的viewholder
+ * @property activity AppCompatActivity
+ * @property viewModel FutureSetViewModel
+ * @property itemSize IntArray
+ * @constructor
+ */
+class FutureSetViewHolder(private val activity : AppCompatActivity,private val viewModel: FutureSetViewModel) : BaseViewHolder<AccMgrBizGroupSetData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    private val addRoleAdapter: BaseAdapter<Acclist, FutureAccountViewHolder> =
+        BaseAdapter { _, _ -> FutureAccountViewHolder(activity, viewModel) }
+
+    override fun _FrameLayout.createContentView() {
+        verticalLayout {
+            linearLayout {
+                gravity = Gravity.CENTER_VERTICAL
+                textView {
+                    data.bindOptional(context){
+                        text = it?.wrName
+                    }
+                    textSizeAuto = 29
+                    textColorInt = R.color.rma_blue_color
+                }.lparams(wrapContent, wrapContent)
+            }.lparams(matchParent, autoSize(92))
+
+            recyclerView {
+                val staggeredGridLayoutManager = StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)
+                layoutManager = staggeredGridLayoutManager
+                adapter = addRoleAdapter
+            }.lparams(matchParent, wrapContent)
+
+            data.bindOptional(context){
+                addRoleAdapter.setNewData(it?.acclist)
+            }
+        }.lparams(matchParent, wrapContent)
+    }
+
+}

+ 64 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/accountmanager/futureset/FutureSetViewModel.kt

@@ -0,0 +1,64 @@
+package cn.muchinfo.rma.view.base.home.accountmanager.futureset
+
+import androidx.lifecycle.MutableLiveData
+import cn.muchinfo.rma.global.GlobalDataCollection
+import cn.muchinfo.rma.global.data.AccMgrBizGroupSetData
+import cn.muchinfo.rma.view.MyApplication
+import cn.muchinfo.rma.view.base.BaseViewModel
+
+/**
+ * 账户管理下的期货设置的viewmodel
+ */
+class FutureSetViewModel : BaseViewModel(){
+
+    /**
+     * 期货账户设置的列表数据(套利)
+     */
+    val futureArbitrageSetDataList : MutableLiveData<List<AccMgrBizGroupSetData>> = MutableLiveData()
+
+    /**
+     * 期货账户设置的列表数据(套保)
+     */
+    val futureHedgeSetDataList : MutableLiveData<List<AccMgrBizGroupSetData>> = MutableLiveData()
+
+    /**
+     * 查询业务类型分组(账户管理/账户设置)
+     */
+    fun queryAccMgrBizGroupSet(){
+        val params = mutableMapOf<String, String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+        }
+        MyApplication.getInstance()?.accountManager?.queryAccMgrBizGroupSet(params = params){ isSuccess, respData, error ->
+            if (isSuccess){
+                resetFutureSetDataList(respData ?: arrayListOf())
+            }
+        }
+    }
+
+    /**
+     * 对
+     * @param oldList List<AccMgrBizGroupSetData>
+     */
+    fun resetFutureSetDataList(oldList : List<AccMgrBizGroupSetData>){
+        val futureArbitrageSetDataNewList = arrayListOf<AccMgrBizGroupSetData>()//套利
+        val futureHedgeSetDataNewList = arrayListOf<AccMgrBizGroupSetData>()//套保
+        oldList.forEach {
+            if (it.biztype == "1"){//1-套保 2-套利
+                var wrName = ""
+                it.wrlist?.forEach {data ->
+                    wrName = wrName + "," + data.deliverygoodsname
+                }
+                futureHedgeSetDataNewList.add(it.copy(wrName = wrName))
+            }else if (it.biztype == "2"){
+                var wrName = ""
+                it.wrlist?.forEach {data ->
+                    wrName = wrName + "," + data.deliverygoodsname
+                }
+                futureArbitrageSetDataNewList.add(it.copy(wrName = wrName))
+            }
+        }
+        futureHedgeSetDataList.postValue(futureHedgeSetDataNewList)
+        futureArbitrageSetDataList.postValue(futureArbitrageSetDataNewList)
+    }
+
+}

+ 148 - 36
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/AddLoginRoleActivity.kt

@@ -9,13 +9,17 @@ import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.R
 import cn.muchinfo.rma.global.MTPEnums
 import cn.muchinfo.rma.global.data.AccMgrLoginUserData
+import cn.muchinfo.rma.global.data.AccMgrRoleMenuData
+import cn.muchinfo.rma.global.data.AccMgrTaaccountSonData
 import cn.muchinfo.rma.global.data.Userlist
 import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI2
 import cn.muchinfo.rma.view.autoWidget.*
 import cn.muchinfo.rma.view.base.BaseActivity
 import cn.muchinfo.rma.view.base.future.trade.itemView
 import cn.muchinfo.rma.view.base.home.contract.emptyView
 import com.blankj.utilcode.util.ToastUtils
+import mtp.polymer.com.autowidget.adapter.BaseAdapter
 import mtp.polymer.com.autowidget.dialog.SelectData
 import mtp.polymer.com.autowidget.dialog.creatBottomSheetDialog
 import mtp.polymer.com.autowidget.dialog.createLoadingDialog
@@ -71,20 +75,33 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
     lateinit var phone_number: EditText
 
     /**
-     * 选择的账户角色
+     * 是否选择为业务员 22:业务员 23:跟单员 24:交易员
      */
-    val roleTypeSelectData: MutableLiveData<SelectData> = MutableLiveData()
+    val isSalesman: MutableLiveData<SelectData> = MutableLiveData()
+
+    /**
+     * 是否选择为跟单员 22:业务员 23:跟单员 24:交易员
+     */
+    val isMerchandiser: MutableLiveData<SelectData> = MutableLiveData()
+
+    /**
+     * 是否选择为跟单员 22:业务员 23:跟单员 24:交易员
+     */
+    val isTraders: MutableLiveData<SelectData> = MutableLiveData()
+
+    private val addLoginRoleAdapter: BaseAdapter<AccMgrTaaccountSonData, LoginRoleViewHolder> =
+        BaseAdapter { _, _ -> LoginRoleViewHolder(this, viewModel) }
 
     /**
      * 页面数据的初始化
      */
     fun init() {
-        roleTypeSelectData.postValue(
-            SelectData(
-                id = data.roleid ?: "",
-                value = data.rolename ?: ""
-            )
-        )
+        if (type == "1") {
+            viewModel.queryAccMgrTaaccount()
+            isSalesman.postValue(SelectData(id = "0", value = "业务员"))
+            isMerchandiser.postValue(SelectData(id = "0", value = "跟单员"))
+            isTraders.postValue(SelectData(id = "0", value = "交易员"))
+        }
     }
 
 
@@ -99,9 +116,9 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
                 commonLeftButton()
                 commonTitle {
                     if (type == "1") {
-                        text = "新增角色"
+                        text = "新增登录账户"
                     } else if (type == "2") {
-                        text = "角色详情"
+                        text = "登录账户详情"
                     } else if (type == "3") {
                         text = "修改"
                     } else if (type == "4") {
@@ -283,11 +300,7 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
                         linearLayout {
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
-                            onThrottleFirstClick {
-                                creatBottomSheetDialog("请选择合同类型", getSelectDataList()) {
-                                    roleTypeSelectData.postValue(this)
-                                }
-                            }
+
                             textView {
                                 visibility = View.INVISIBLE
                                 text = "*"
@@ -306,11 +319,25 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
                             }
 
                             linearLayout {
+                                onThrottleFirstClick {
+                                    if (isSalesman.value?.id == "0") {
+                                        isSalesman.postValue(SelectData(id = "23", value = "业务员"))
+                                    } else {
+                                        isSalesman.postValue(SelectData(id = "0", value = "业务员"))
+                                    }
+                                }
                                 gravity = Gravity.CENTER_VERTICAL
                                 imageView {
-                                    imageResource = R.mipmap.rma_select_click
+                                    isSalesman.bindOptional(context) {
+                                        if (it?.id == "0") {
+                                            imageResource = R.mipmap.rma_normal_click
+                                        } else {
+                                            imageResource = R.mipmap.rma_select_click
+                                        }
+                                    }
+
                                 }.lparams(autoSize(25), autoSize(25)) {
-                                    marginStart = autoSize(20)
+                                    marginStart = autoSize(80)
                                 }
 
                                 textView {
@@ -324,8 +351,31 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
 
                             linearLayout {
                                 gravity = Gravity.CENTER_VERTICAL
+                                onThrottleFirstClick {
+                                    if (isMerchandiser.value?.id == "0") {
+                                        isMerchandiser.postValue(
+                                            SelectData(
+                                                id = "22",
+                                                value = "跟单员"
+                                            )
+                                        )
+                                    } else {
+                                        isMerchandiser.postValue(
+                                            SelectData(
+                                                id = "0",
+                                                value = "跟单员"
+                                            )
+                                        )
+                                    }
+                                }
                                 imageView {
-                                    imageResource = R.mipmap.rma_select_click
+                                    isMerchandiser.bindOptional(context) {
+                                        if (it?.id == "0") {
+                                            imageResource = R.mipmap.rma_normal_click
+                                        } else {
+                                            imageResource = R.mipmap.rma_select_click
+                                        }
+                                    }
                                 }.lparams(autoSize(25), autoSize(25)) {
                                     marginStart = autoSize(20)
                                 }
@@ -341,8 +391,21 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
 
                             linearLayout {
                                 gravity = Gravity.CENTER_VERTICAL
+                                onThrottleFirstClick {
+                                    if (isTraders.value?.id == "0") {
+                                        isTraders.postValue(SelectData(id = "24", value = "交易员"))
+                                    } else {
+                                        isTraders.postValue(SelectData(id = "0", value = "交易员"))
+                                    }
+                                }
                                 imageView {
-                                    imageResource = R.mipmap.rma_select_click
+                                    isTraders.bindOptional(context) {
+                                        if (it?.id == "0") {
+                                            imageResource = R.mipmap.rma_normal_click
+                                        } else {
+                                            imageResource = R.mipmap.rma_select_click
+                                        }
+                                    }
                                 }.lparams(autoSize(25), autoSize(25)) {
                                     marginStart = autoSize(20)
                                 }
@@ -361,7 +424,13 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
                         linearLayout {
                             background = resources.getDrawable(R.color.white)
                             gravity = Gravity.CENTER_VERTICAL
-
+                            isTraders.bindOptional(context) {
+                                if (it?.id == "0") {
+                                    visibility = View.GONE
+                                } else {
+                                    visibility = View.VISIBLE
+                                }
+                            }
                             textView {
                                 visibility = View.INVISIBLE
                                 text = "*"
@@ -386,13 +455,25 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
                                 marginStart = autoSize(40)
                             }
                         }.lparams(matchParent, autoSize(132))
+
                         recyclerView {
+                            isTraders.bindOptional(context) {
+                                if (it?.id == "0") {
+                                    visibility = View.GONE
+                                } else {
+                                    visibility = View.VISIBLE
+                                }
+                            }
                             background = resources.getDrawable(R.color.add_role_bg_color)
-//                            adapter = addRoleAdapter
+                            adapter = addLoginRoleAdapter
                             isNestedScrollingEnabled = false
-                        }.lparams(matchParent, wrapContent){
+                        }.lparams(matchParent, wrapContent) {
                             bottomMargin = autoSize(200)
                         }
+
+                        viewModel.futureDataList.bindOptional(context) {
+                            addLoginRoleAdapter.setNewData(it)
+                        }
                     }
                 }
                 linearLayout {
@@ -407,27 +488,25 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
                             }
                             if (type == "1") {// 1 新增 2 详情 3 修改 4 锁定 5 注销
                                 viewModel.LoginaccountOperateReq(
-                                    operatetype = 3,
+                                    operatetype = 1,
                                     logincode = login_account.text.toString(),
                                     accountname = account_name.text.toString(),
                                     password = login_password.text.toString(),
                                     mobile = phone_number.text.toString(),
-                                    roleids = arrayListOf(
-                                        roleTypeSelectData.value?.id?.toLong() ?: 0
-                                    )
+                                    roleids = getSelectDataList(),
+                                    logintaaccounts = getSelectFuture()
                                 ) {
                                     finish()
                                 }
                             } else if (type == "3") {//修改
                                 viewModel.LoginaccountOperateReq(
-                                    operatetype = 4,
+                                    operatetype = 2,
                                     logincode = login_account.text.toString(),
                                     accountname = account_name.text.toString(),
                                     password = login_password.text.toString(),
                                     mobile = phone_number.text.toString(),
-                                    roleids = arrayListOf(
-                                        roleTypeSelectData.value?.id?.toLong() ?: 0
-                                    )
+                                    roleids = getSelectDataList(),
+                                    logintaaccounts = getSelectFuture()
                                 ) {
                                     finish()
                                 }
@@ -451,14 +530,36 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
     }
 
     /**
-     * 可选择的账户角色
+     * 提交资料时可选择的账户角色列表
+     */
+    fun getSelectDataList(): List<Long> {
+        val newDataList = arrayListOf<Long>()
+        if (isSalesman.value?.id != "0") {
+            newDataList.add(isSalesman.value?.id?.toLong() ?: 22)
+        }
+        if (isMerchandiser.value?.id != "0") {
+            newDataList.add(isMerchandiser.value?.id?.toLong() ?: 23)
+        }
+        if (isTraders.value?.id != "0"){
+            newDataList.add(isTraders.value?.id?.toLong() ?: 24)
+        }
+        return newDataList
+    }
+
+    /**
+     * 获取提交资料时期货账户的列表
+     * @return List<ManageServiceMI2.LoginTaaccount>
      */
-    fun getSelectDataList(): List<SelectData> {
-        val selectList = arrayListOf<SelectData>()
-        seletType.forEach {
-            selectList.add(SelectData(id = it.roleid ?: "", value = it.rolename ?: ""))
+    fun getSelectFuture() : List<ManageServiceMI2.LoginTaaccount>{
+        val loginTaaccountDataList = arrayListOf<ManageServiceMI2.LoginTaaccount>()
+        viewModel.futureDataList.value?.forEach {
+            val loginTaaccountData = ManageServiceMI2.LoginTaaccount.newBuilder()
+            if (it.isSelect == 1){
+                loginTaaccountData.setAccountid(it.accountid?.toLong() ?: 0)
+                loginTaaccountDataList.add(loginTaaccountData.build())
+            }
         }
-        return selectList
+        return loginTaaccountDataList
     }
 
     /**
@@ -478,6 +579,17 @@ class AddLoginRoleActivity : BaseActivity<RoleSetViewModel>() {
             ToastUtils.showLong("请输入登录密码")
             return false
         }
+        if (isSalesman.value?.id == "0" && isMerchandiser.value?.id == "0" && isTraders.value?.id == "0"){
+            ToastUtils.showLong("请选择角色")
+            return false
+        }
+        if (isTraders.value?.id != "0"){
+            val selectData = viewModel.futureDataList.value?.find { it.isSelect == 1 }
+            if (selectData?.accountid.isNullOrEmpty()){
+                ToastUtils.showLong("请选择期货账户")
+                return false
+            }
+        }
         return true
     }
 

+ 0 - 5
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/AddRoleActivity.kt

@@ -234,7 +234,6 @@ class AddRoleActivity : BaseActivity<RoleSetViewModel>() {
 
             itemView()
 
-
             linearLayout {
                 background = resources.getDrawable(R.color.white)
                 gravity = Gravity.CENTER_VERTICAL
@@ -271,8 +270,6 @@ class AddRoleActivity : BaseActivity<RoleSetViewModel>() {
                 }.lparams(matchParent, autoSize(132)) {
                     marginStart = autoSize(80)
                 }
-
-
             }.lparams(matchParent, autoSize(132))
 
             itemView()
@@ -329,8 +326,6 @@ class AddRoleActivity : BaseActivity<RoleSetViewModel>() {
             linearLayout {
                 background = resources.getDrawable(R.color.white)
                 gravity = Gravity.CENTER_VERTICAL
-
-
                 textView {
                     onThrottleFirstClick {
                         if (check().not()) {

+ 48 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/LoginRoleViewHolder.kt

@@ -0,0 +1,48 @@
+package cn.muchinfo.rma.view.base.home.rolemanagement
+
+import android.view.Gravity
+import androidx.appcompat.app.AppCompatActivity
+import cn.muchinfo.rma.R
+import cn.muchinfo.rma.global.data.AccMgrTaaccountSonData
+import cn.muchinfo.rma.lifecycle.bindOptional
+import cn.muchinfo.rma.view.autoWidget.autoSize
+import cn.muchinfo.rma.view.autoWidget.onThrottleFirstClick
+import cn.muchinfo.rma.view.autoWidget.textColorInt
+import cn.muchinfo.rma.view.autoWidget.textSizeAuto
+import mtp.polymer.com.autowidget.adapter.BaseViewHolder
+import org.jetbrains.anko.*
+
+class LoginRoleViewHolder(private val activity : AppCompatActivity,private val viewModel: RoleSetViewModel) : BaseViewHolder<AccMgrTaaccountSonData>(activity){
+    override val itemSize: IntArray = intArrayOf(matchParent, wrapContent)
+
+    override fun _FrameLayout.createContentView() {
+        linearLayout {
+            onThrottleFirstClick {
+                viewModel.setOnClickLoginRoleChange(data.value?.accountid ?: "")
+            }
+            gravity = Gravity.CENTER_VERTICAL
+            imageView {
+                data.bindOptional(context){
+                    if (it?.isSelect == 0){
+                        imageResource = R.mipmap.rma_normal_click
+                    }else{
+                        imageResource = R.mipmap.rma_select_click
+                    }
+                }
+//                imageResource = R.mipmap.rma_select_click
+            }.lparams(autoSize(38), autoSize(38)){
+                marginStart = autoSize(65)
+            }
+            textView {
+                data.bindOptional(context){
+                    text = it?.accountname + "/" + it?.accountid
+                }
+                textSizeAuto = 31
+                textColorInt = R.color.rma_blue_color
+            }.lparams(wrapContent, wrapContent){
+                marginStart = autoSize(16)
+            }
+        }.lparams(matchParent, autoSize(110))
+    }
+
+}

+ 0 - 2
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/RoleLoginVIewHolder.kt

@@ -1,2 +0,0 @@
-package cn.muchinfo.rma.view.base.home.rolemanagement
-

+ 56 - 4
RMA/app/src/main/java/cn/muchinfo/rma/view/base/home/rolemanagement/RoleSetViewModel.kt

@@ -2,10 +2,7 @@ package cn.muchinfo.rma.view.base.home.rolemanagement
 
 import androidx.lifecycle.MutableLiveData
 import cn.muchinfo.rma.global.GlobalDataCollection
-import cn.muchinfo.rma.global.data.AccMgrRoleData
-import cn.muchinfo.rma.global.data.AccMgrRoleMenuData
-import cn.muchinfo.rma.global.data.AccMgrTaaccountData
-import cn.muchinfo.rma.global.data.RoleSonMenuData
+import cn.muchinfo.rma.global.data.*
 import cn.muchinfo.rma.netManage.base.InteractiveException
 import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI2
 import cn.muchinfo.rma.view.MyApplication
@@ -42,6 +39,61 @@ class RoleSetViewModel : BaseViewModel(){
 
 
     /**
+     * 新增登录账号时,可选择的期货账户列表
+     */
+    val futureDataList : MutableLiveData<List<AccMgrTaaccountSonData>> = MutableLiveData()
+
+
+    /**
+     * 查询账户管理/期货账户
+     */
+    fun queryAccMgrTaaccount(){
+        val params = mutableMapOf<String, String>().apply {
+            put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
+        }
+        MyApplication.getInstance()?.accountManager?.queryAccMgrTaaccount(params = params){isSuccess, respData, error ->
+            if (isSuccess){
+                resetAccMgrTaaccount(respData ?: arrayListOf())
+            }
+        }
+    }
+
+    /**
+     * 对期货账户的主列表和子列表进行合并
+     */
+    fun resetAccMgrTaaccount(oldList : List<AccMgrTaaccountData>){
+        val newDataList = arrayListOf<AccMgrTaaccountSonData>()
+        oldList.forEach {
+            newDataList.add(it.mainAcc ?: AccMgrTaaccountSonData())
+            it.subacclist?.forEach {
+                newDataList.add(it)
+            }
+        }
+        futureDataList.postValue(newDataList)
+    }
+
+    /**
+     * 新增登录账户中选择期货账户的数据变更
+     */
+    fun setOnClickLoginRoleChange(accountId : String){
+        val oldList = futureDataList.value
+        val newDataList = arrayListOf<AccMgrTaaccountSonData>()
+        oldList?.forEach {
+            if (accountId == it.accountid){
+                if (it.isSelect == 0){
+                    newDataList.add(it.copy(isSelect = 1))
+                }else{
+                    newDataList.add(it.copy(isSelect = 0))
+                }
+            }else{
+                newDataList.add(it)
+            }
+        }
+        futureDataList.postValue(newDataList)
+    }
+
+
+    /**
      * 查询账户管理角色详情(账户管理/角色设置/角色详情)
      */
     fun queryAccMgrRoleMenu(roleid : String = ""){