Commit ae32b282 authored by yinjiacheng's avatar yinjiacheng

update 个人认证流程

parent f11596b8
...@@ -22,5 +22,6 @@ class LifeAccountPersonalAuthData { ...@@ -22,5 +22,6 @@ class LifeAccountPersonalAuthData {
var validDateEnd: String = "" var validDateEnd: String = ""
var issuedBy: String = "" var issuedBy: String = ""
var isFaceAuthPass: Boolean = false var isFaceAuthPass: Boolean = false
var isIDCardAuthPass: Boolean = false var isIDCardPortraitFaceUpload: Boolean = false
var isIDCardNationalEmblemFaceUpload: Boolean = false
} }
...@@ -342,6 +342,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -342,6 +342,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
} }
override fun onTaskSuccess(bucket: String?, objectKey: String?) { override fun onTaskSuccess(bucket: String?, objectKey: String?) {
LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = true
objectKey?.let { objectKey?.let {
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey = LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey =
it it
...@@ -366,6 +367,8 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -366,6 +367,8 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
} }
override fun onTaskSuccess(bucket: String?, objectKey: String?) { override fun onTaskSuccess(bucket: String?, objectKey: String?) {
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload =
true
objectKey?.let { objectKey?.let {
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey = LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey =
it it
...@@ -408,8 +411,6 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -408,8 +411,6 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
} }
override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) { override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) {
// 存储认证使用的信息
LifeAccountAuthDataManager.personalAuthData.isIDCardAuthPass = true
result?.let { LifeAccountAuthDataManager.generatePersonalAuthData(it) } result?.let { LifeAccountAuthDataManager.generatePersonalAuthData(it) }
// 回显OCR结果 // 回显OCR结果
viewBinding.evRealName.fillEditContent(result?.posit?.name) viewBinding.evRealName.fillEditContent(result?.posit?.name)
...@@ -417,8 +418,6 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -417,8 +418,6 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
// 此时身份证两面均已上传并OCR识别完成 删除本地临时存储文件 // 此时身份证两面均已上传并OCR识别完成 删除本地临时存储文件
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).delete() File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).delete()
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).delete() File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).delete()
// 检查下一步条件
(activity as LifeAccountPersonalAuthActivity).checkNextCondition()
} }
override fun getIDCardOCRFailure(message: String?) { override fun getIDCardOCRFailure(message: String?) {
...@@ -426,7 +425,6 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -426,7 +425,6 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
Constant.LIFE_ACCOUNT_AUTH_TAG, Constant.LIFE_ACCOUNT_AUTH_TAG,
"request id card ocr failure, message: $message" "request id card ocr failure, message: $message"
) )
LifeAccountAuthDataManager.personalAuthData.isIDCardAuthPass = false
} }
override fun getTokenSuccess(t: HttpResult<AuthPersonalGetTokenBean.Response?>?) { override fun getTokenSuccess(t: HttpResult<AuthPersonalGetTokenBean.Response?>?) {
...@@ -576,16 +574,28 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -576,16 +574,28 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
) )
} }
override fun onImageClear() { override fun onImageClear(from: LifeAccountAuthImageView) {
viewBinding.evRealName.clearEditContent() if (from == viewBinding.ivIdCardPortraitFace) {
viewBinding.evIdCardNumber.clearEditContent() LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = false
// 检查下一步状态 } else {
(activity as LifeAccountPersonalAuthActivity).checkNextCondition() LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload = false
}
}
override fun onTextClear(from: LifeAccountAuthIdentityInfoEditView) {
if (from == viewBinding.evRealName) {
LifeAccountAuthDataManager.personalAuthData.realName = ""
} else {
LifeAccountAuthDataManager.personalAuthData.idCardNum = ""
}
} }
override fun onTextClear() { override fun onTextChange(from: LifeAccountAuthIdentityInfoEditView, text: String) {
// 检查下一步状态 if (from == viewBinding.evRealName) {
(activity as LifeAccountPersonalAuthActivity).checkNextCondition() LifeAccountAuthDataManager.personalAuthData.realName = text
} else {
LifeAccountAuthDataManager.personalAuthData.idCardNum = text
}
} }
/** /**
...@@ -608,13 +618,14 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -608,13 +618,14 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
/** /**
* 本地校验是否可以进行人脸验证 * 本地校验是否可以进行人脸验证
* 必须同时满足真实姓名已填、身份证号已填、身份证两面已上传 * 必须同时满足真实姓名已填、身份证号已填、身份证两面已上传、职业标签已选
*/ */
private fun checkFaceAuthCondition(): Boolean { private fun checkFaceAuthCondition(): Boolean {
// TODO: 6/2/21 添加职业标签校验
return LifeAccountAuthDataManager.personalAuthData.realName.isNotEmpty() return LifeAccountAuthDataManager.personalAuthData.realName.isNotEmpty()
&& LifeAccountAuthDataManager.personalAuthData.idCardNum.isNotEmpty() && LifeAccountAuthDataManager.personalAuthData.idCardNum.isNotEmpty()
&& LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey.isNotEmpty() && LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload
&& LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey.isNotEmpty() && LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload
} }
......
...@@ -50,7 +50,6 @@ class LifeAccountPersonalAuthActivity : BaseActivity<ActivityLifeAccountPersonal ...@@ -50,7 +50,6 @@ class LifeAccountPersonalAuthActivity : BaseActivity<ActivityLifeAccountPersonal
fun checkNextCondition() { fun checkNextCondition() {
if (viewBind.cbProtocol.isChecked if (viewBind.cbProtocol.isChecked
&& LifeAccountAuthDataManager.personalAuthData.occupation.isNotEmpty() && LifeAccountAuthDataManager.personalAuthData.occupation.isNotEmpty()
&& LifeAccountAuthDataManager.personalAuthData.isIDCardAuthPass
&& LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass && LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass
) { ) {
viewBind.btnNext.alpha = 1f viewBind.btnNext.alpha = 1f
...@@ -65,10 +64,10 @@ class LifeAccountPersonalAuthActivity : BaseActivity<ActivityLifeAccountPersonal ...@@ -65,10 +64,10 @@ class LifeAccountPersonalAuthActivity : BaseActivity<ActivityLifeAccountPersonal
when (v?.id) { when (v?.id) {
R.id.iv_back -> XPageManager.pop(null) R.id.iv_back -> XPageManager.pop(null)
R.id.sv_occupation -> { R.id.sv_occupation -> {
// TODO: 5/27/21 跳转职业标签选择 // TODO: 5/27/21 跳转职业标签选择 选择完成后进行下一步检查
} }
R.id.btn_next -> { R.id.btn_next -> {
// TODO: 5/27/21 执行认证逻辑 // TODO: 5/27/21 首先执行身份信息入库(保证信息是最新的),再执行认证逻辑
} }
} }
} }
......
...@@ -30,7 +30,7 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor( ...@@ -30,7 +30,7 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor(
) )
) )
private lateinit var callback: OnLifeAccountAuthIdentityInfoEditViewCallback private var callback: OnLifeAccountAuthIdentityInfoEditViewCallback? = null
init { init {
val typedArray = val typedArray =
...@@ -60,6 +60,7 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor( ...@@ -60,6 +60,7 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor(
if (viewBinding.tvErrorTips.visibility == View.VISIBLE) { if (viewBinding.tvErrorTips.visibility == View.VISIBLE) {
viewBinding.tvErrorTips.visibility = View.GONE viewBinding.tvErrorTips.visibility = View.GONE
} }
callback?.onTextClear(this)
} }
/** /**
...@@ -90,6 +91,7 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor( ...@@ -90,6 +91,7 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor(
override fun afterTextChanged(s: Editable?) { override fun afterTextChanged(s: Editable?) {
// 处理一键清除按钮 // 处理一键清除按钮
viewBinding.ivClear.visibility = if (TextUtils.isEmpty(s)) View.GONE else View.VISIBLE viewBinding.ivClear.visibility = if (TextUtils.isEmpty(s)) View.GONE else View.VISIBLE
callback?.onTextChange(this, s.toString())
} }
fun setOnLifeAccountAuthIdentityInfoEditViewCallback(callback: OnLifeAccountAuthIdentityInfoEditViewCallback) { fun setOnLifeAccountAuthIdentityInfoEditViewCallback(callback: OnLifeAccountAuthIdentityInfoEditViewCallback) {
...@@ -98,8 +100,13 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor( ...@@ -98,8 +100,13 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor(
interface OnLifeAccountAuthIdentityInfoEditViewCallback { interface OnLifeAccountAuthIdentityInfoEditViewCallback {
/** /**
* 清除文字 * 清除内容
*/ */
fun onTextClear() fun onTextClear(from: LifeAccountAuthIdentityInfoEditView)
/**
* 内容修改
*/
fun onTextChange(from: LifeAccountAuthIdentityInfoEditView, text: String)
} }
} }
\ No newline at end of file
...@@ -28,7 +28,7 @@ class LifeAccountAuthImageView @JvmOverloads constructor( ...@@ -28,7 +28,7 @@ class LifeAccountAuthImageView @JvmOverloads constructor(
) )
) )
private lateinit var callback: OnLifeAccountAuthImageViewCallback private var callback: OnLifeAccountAuthImageViewCallback? = null
init { init {
val typeArray = val typeArray =
...@@ -70,6 +70,7 @@ class LifeAccountAuthImageView @JvmOverloads constructor( ...@@ -70,6 +70,7 @@ class LifeAccountAuthImageView @JvmOverloads constructor(
viewBinding.ivContent.setImageDrawable(null) viewBinding.ivContent.setImageDrawable(null)
isEnabled = true isEnabled = true
viewBinding.ivClear.isVisible = false viewBinding.ivClear.isVisible = false
callback?.onImageClear(this)
} }
override fun onClick(v: View?) { override fun onClick(v: View?) {
...@@ -87,7 +88,7 @@ class LifeAccountAuthImageView @JvmOverloads constructor( ...@@ -87,7 +88,7 @@ class LifeAccountAuthImageView @JvmOverloads constructor(
/** /**
* 清除图片 * 清除图片
*/ */
fun onImageClear() fun onImageClear(from: LifeAccountAuthImageView)
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment