PersonalVerityVModel.kt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package com.quansu.heifengwuliu.vmodel
  2. import android.app.Activity
  3. import android.app.Application
  4. import android.text.TextUtils
  5. import androidx.databinding.Bindable
  6. import androidx.lifecycle.MutableLiveData
  7. import com.hwangjr.rxbus.RxBus
  8. import com.quansu.heifengwuliu.BR
  9. import com.quansu.heifengwuliu.activity.HomeActivity
  10. import com.quansu.heifengwuliu.config.ConfigRx
  11. import com.quansu.heifengwuliu.model.Idcard
  12. import com.quansu.heifengwuliu.model.LoginBean
  13. import com.quansu.heifengwuliu.model.User
  14. import com.quansu.heifengwuliu.repository.PersonalVerifyRepository
  15. import com.quansu.heifengwuliu.utils.ChosePhotoUtils
  16. import com.quansu.heifengwuliu.utils.VerifyUtils
  17. import com.quansu.heifengwuliu.utils.net.NetEngine
  18. import com.tencent.mmkv.MMKV
  19. import com.ysnows.base.base.BViewModel
  20. import com.ysnows.base.utils.UiSwitch
  21. class PersonalVerityVModel(application: Application) : BViewModel<PersonalVerifyRepository>(application) {
  22. //https://cdnheifengwuliu.qs110.com/idcard/xuzgomb3/android/v/mmexport1599207639412.jpg
  23. var imgIDMan: MutableLiveData<String> = MutableLiveData("")
  24. var imgIDEmblem: MutableLiveData<String> = MutableLiveData("")
  25. var type:String="1"//1:身份证正面 2:身份证背面
  26. var isShow: MutableLiveData<Boolean> = MutableLiveData(true)
  27. var nameID:String=""
  28. var iDNumberID:String=""
  29. @Bindable
  30. var name: String? = null
  31. set(value) {
  32. field = value
  33. notifyPropertyChanged(BR.name)
  34. }
  35. @Bindable
  36. var iDNumber: String? = null
  37. set(value) {
  38. field = value
  39. notifyPropertyChanged(BR.iDNumber)
  40. }
  41. fun choseImg(type:Int){
  42. if(!isShow.value!!){
  43. return
  44. }
  45. //选择照片
  46. this.type=type.toString()
  47. ChosePhotoUtils.getChosePhoto(view()!!.context(), 1)
  48. }
  49. fun toSubmit(){
  50. if(TextUtils.isEmpty(imgIDMan.value)){
  51. toast("请上传身份证人像面图片")
  52. return
  53. }
  54. if(TextUtils.isEmpty(imgIDEmblem.value)){
  55. toast("请上传国徽面图片")
  56. return
  57. }
  58. if(TextUtils.isEmpty(name)){
  59. toast("请输入姓名")
  60. return
  61. }
  62. //验证姓名的格式
  63. if(!VerifyUtils.isLegalName(name!!)){
  64. toast("姓名格式不对,请核实!")
  65. return
  66. }
  67. //判断是否和图片上的一致
  68. if(!TextUtils.isEmpty(nameID)&&(!name.equals(nameID))){
  69. toast("输入姓名和身份证上姓名不一致,请核实!")
  70. return
  71. }
  72. if(TextUtils.isEmpty(iDNumber)){
  73. toast("请输入身份证号")
  74. return
  75. }
  76. if(!VerifyUtils.isLegalId(iDNumber!!)){
  77. toast("身份证格式不对,请核实!")
  78. return
  79. }
  80. //判断是否和图片上的一致
  81. if(!TextUtils.isEmpty(iDNumberID)&&(!iDNumber.equals(iDNumberID))){
  82. toast("输入身份证号和身份证上的身份证号不一致,请核实!")
  83. return
  84. }
  85. repository().rxLreq(NetEngine.service.setInfo(imgIDMan.value, imgIDEmblem.value,name,iDNumber))
  86. .doOnNext {
  87. if (it.ok(true)) {
  88. var user = User.get()
  89. user!!.is_info = 2
  90. user.save()
  91. RxBus.get().post(ConfigRx.REFRESH_USER, "")
  92. (repository().context as Activity).finish()
  93. }
  94. }
  95. .subscribe()
  96. }
  97. fun getInfo(){
  98. //获取个人信息
  99. repository().rxPreq(NetEngine.service.getInfo("1"))
  100. .doOnNext {
  101. if (it.ok(false)) {
  102. var bean=it.data()
  103. if(null!=bean){
  104. isShow.value = bean.status != "2"
  105. //设置值
  106. imgIDMan.value=bean.idcard_z
  107. imgIDEmblem.value=bean.idcard_f
  108. name=bean.name
  109. iDNumber=bean.idcard
  110. }
  111. }
  112. }
  113. .subscribe()
  114. }
  115. fun discernID(img:String){//识别身份证
  116. repository().rxLreq(NetEngine.service.cvIdcard(img))
  117. .doOnNext {
  118. if (it.ok(true)) {
  119. var bean=it.data() as Idcard
  120. name=bean.name
  121. iDNumber=bean.id
  122. nameID=bean.name
  123. iDNumberID=bean.id
  124. }
  125. }
  126. .subscribe()
  127. }
  128. override fun createRepository(): PersonalVerifyRepository {
  129. return PersonalVerifyRepository()
  130. }
  131. }